PROBLEM
When running the Docker container interactively (ex: docker run --rm -it myimage
), you want to run a startup script every time.
SOLUTION
For Ubuntu, Debian and Centos images, write the startup script to /root/.bashrc
:
# UBUNTU FROM ubuntu:latest RUN echo "echo 'Welcome!'" >> /root/.bashrc WORKDIR /home # DEBIAN FROM debian:latest RUN echo "echo 'Welcome!'" >> /root/.bashrc WORKDIR /home # CENTOS FROM centos:latest RUN echo "echo 'Welcome!'" >> /root/.bashrc WORKDIR /home
For Alpine image, it’s a little different because it uses Ash shell. Besides writing the startup script to /root/.profile
, you also need to set that path to an environment variable called ENV
:
FROM alpine:latest ENV ENV=/root/.profile RUN echo "echo 'Welcome!'" > $ENV WORKDIR /home