Immagine docker alpine con installati docker, cron, ssh, terraform e webssh.
Uso destinato esclusivamente alla creazione di ambienti di test, pipeline, ci/cd, etc.
NON UTILIZZARE IN PRODUZIONE!
- Se si usa il comando rapido, l'immagine non ha prerequisiti.
- Make deve essere installato sulla macchina host per poter utilizzare il makefile:
sudo apt install make
docker run -d \
--name=dind-env \
--hostname=alpine \
--privileged=true \
--publish=2375:2375/tcp \
--publish=2255:22/tcp \
--publish=8888:8888/tcp \
ghcr.io/manprint/alpine-dind:latest
Per utilizzare il runtime sysbox è necessario installarlo seguendo le istruzioni della pagina dello sviluppatore:
Nota bene: installare la release v0.5.0
(https://github.com/nestybox/sysbox/releases)
Ulteriori riferimenti al repo di sviluppo sysbox:
- https://github.com/nestybox/sysbox
- https://github.com/nestybox/sysbox/blob/master/docs/user-guide/install-package.md
docker run -d \
--name=dind-env \
--hostname=alpine \
--runtime=sysbox-runc \
--publish=2375:2375/tcp \
--publish=2255:22/tcp \
--publish=8888:8888/tcp \
ghcr.io/manprint/alpine-dind:latest
Per comodità, è stato creato un MakefileLite per eseguire i task di avvio, stop, etc. del container. Per utilizzare il makefile seguire le istruzioni seguenti:
-
Creare una cartella di lavoro, ad esempio
~/dind-env
ed entrare nella cartella -
Scaricare il makefile (versione Lite, senza i task di test e push) tramite il seguente comando:
curl -sSL https://raw.githubusercontent.com/manprint/alpine-dind/develop/MakefileLite -o Makefile
-
Eseguire il comando
make
per vedere i task disponibili -
Modificare il makefile se è necessario secondo le proprie esigenze (ad esempio per aggiungere la persistenza o inserire una network)
Per connettersi al container è possibile utilizzare i seguenti metodi:
docker exec -it dind-env bash
ssh -o 'StrictHostKeyChecking no' -p 2255 alpine@localhost
Aprire il browser all'indirizzo:
Inserire i seguenti dati:
- host:
localhost
- port:
22
(porta interna del container) - username:
alpine
- password:
alpine
In modo più rapido, i dati possono essere passati come query string (la password è alpine
in base64: YWxwaW5l
):
http://localhost:8888/?hostname=localhost&username=alpine&password=YWxwaW5l&title=Alpine-Dind
Volume configurato nell'immagine: /var/lib/docker
Si consiglia per la persistenza della directory di docker di utilizzare un named volume
. La riga da aggiungere all'avvio rapido ed al makefile è la seguente:
--volume=docker_alpine_volume:/var/lib/docker \
In alternativa, è possibile utilizzare un binded volume
; seguono le istruzioni:
-
Creazione cartella locale (sostituire
user
con il proprio utente o specificare un path specifico):export USER=user mkdir /home/$USER/docker_alpine_volume
-
Comando da aggiungere all'avvio rapido oppure al makefile (sostituire
user
con il proprio utente o specificare un path specifico):--volume=/home/$USER/docker_alpine_volume:/var/lib/docker \
Per la persistenza della cartella home dell'utente alpine (utente predefinito, UID=1000, GID=1000 all'interno del container) utilizzare un binded volume
. Le istruzioni e la riga da aggiungere al makefile ed all'avvio rapido sono le seguenti:
-
Creazione cartella locale (sostituire
user
con il proprio utente o specificare un path specifico):export USER=user mkdir /home/$USER/home_alpine_volume && chown -R 1000:1000 /home/$USER/home_alpine_volume
-
Comando da aggiungere all'avvio rapido oppure al makefile (sostituire
user
con il proprio utente o specificare un path specifico):--volume=/home/$USER/home_alpine_volume:/home/alpine \
Nota Bene: sostituire i path locali dei volumi con quelli relativi al proprio ambiente
docker run -d \
--name=dind-env \
--hostname=alpine \
--privileged=true \
--publish=2375:2375/tcp \
--publish=2255:22/tcp \
--publish=8888:8888/tcp \
--volume=/home/mint/docker/dind-alpine/docker-vol:/var/lib/docker \
--volume=/home/mint/docker/dind-alpine/alpine-vol:/home/alpine \
ghcr.io/manprint/alpine-dind:latest
docker run -d \
--name=dind-env \
--hostname=alpine \
--runtime=sysbox-runc \
--publish=2375:2375/tcp \
--publish=2255:22/tcp \
--publish=8888:8888/tcp \
--volume=/home/mint/docker/dind-alpine/docker-vol:/var/lib/docker \
--volume=/home/mint/docker/dind-alpine/alpine-vol:/home/alpine \
ghcr.io/manprint/alpine-dind:latest