Per eseguire uno script all’avvio di un contenitore Docker, è necessario usare il comando CMD o ENTRYPOINT nel file Dockerfile. Questi comandi specificano quali comandi devono essere eseguiti all’avvio del contenitore.
Ecco un esempio di come si può fare:
1. Crea uno script bash. Ad esempio, crea un file chiamato `startup.sh` e rendilo eseguibile con `chmod +x startup.sh`:
``` #!/bin/bash
echo “Questo script viene eseguito all’avvio del contenitore Docker“
```
1. Nel Dockerfile, copia lo script nel contenitore e usalo come comando di avvio. Ad esempio:
```
FROM ubuntu:latest
COPY ./startup.sh /opt/startup.sh
CMD [“/bin/bash”, “/opt/startup.sh”]
```
In questo esempio, il comando `COPY` copia lo script di avvio `startup.sh` dalla directory locale alla directory `/opt/` del contenitore. Il comando `CMD` poi specifica che lo script deve essere eseguito all’avvio del contenitore utilizzando bash.
Ricorda che se più comandi CMD sono presenti nel Dockefile, solo l’ultimo viene eseguito.
Con ENTRYPOINT invece, qualunque cosa sia definita può essere sovrascritta durante il comando run. Ad esempio:
```
FROM ubuntu:latest
COPY ./startup.sh /opt/startup.sh
ENTRYPOINT [“/bin/bash”, “/opt/startup.sh”]
```
In questo caso, se il contenitore viene eseguito con un comando addizionale, ad esempio `docker run -it imagename command`, il comando sovrascriverà `/opt/startup.sh`.