Docker permite ejecutar scripts al iniciar un contenedor a través de la instrucción `CMD` o `ENTRYPOINT` en el archivo Dockerfile.
Una opción es incluir el script que quieres ejecutar en el Dockerfile y luego usar la instrucción `CMD` o `ENTRYPOINT` para ejecutarlo.
Aquí hay un ejemplo de cómo sería:
1. Incluye tu script en el Dockerfile:
```dockerfile
FROM ubuntu:latest
COPY script.sh /usr/bin/
RUN chmod +x /usr/bin/script.sh
```
2. Ahora, puedes usar `CMD` o `ENTRYPOINT` para ejecutarlo:
```dockerfile
CMD [“/usr/bin/script.sh”]
```
O
```dockerfile
ENTRYPOINT [“/usr/bin/script.sh”]
```
La diferencia entre las dos es que `CMD` proporciona valores predeterminados que pueden ser reemplazados por argumentos en la línea de comandos de `docker run`, mientras que `ENTRYPOINT` no permite ser omitido.
Si tu script necesita ser ejecutado como root, puedes usar la instrucción `USER` para cambiar al usuario root:
```dockerfile
USER root
CMD [“/usr/bin/script.sh”]
```
Una vez que hayas construido tu Dockerfile, podrás correr tu contenedor y tu script será ejecutado.
```bash
docker build -t my_image .
docker run my_image
```
Recuerda hacer tu script ejecutable antes de construir la imagen Docker. Puedes hacerlo con:
```bash
chmod +x script.sh
```