我想在Alpine Docker容器启动时执行shell脚本。
yruzcnhs1#
您应该创建一个要复制到新容器中的shell文件,然后将容器入口点设置为您创建的shell脚本,synthax如下所示
FROM <docker/alpine-image> #.... somecode USER root COPY /localmachinelocation/entrypoint.sh /containerlocation/entrypoint.sh RUN chmod 544 /var/www/webapp/entrypoint.sh #.... somecode CMD /containerlocation/entrypoint.sh
您可以指定运行脚本所需的用户。Chmod确保脚本可以由脚本的所有者运行,您可以出于安全考虑更改它。假设您的脚本位于/home/user/script.sh中,您可以执行以下操作
FROM <docker/alpine-image> USER root COPY /home/user/script.sh /root/entrypoint.sh RUN chmod 544 /var/www/webapp/entrypoint.sh CMD /root/entrypoint.sh
v64noz0r2#
您的docker文件如下所示
FROM alpine:latest ##Do your stuff ##### ##Last line CMD ["entrypoint.sh"] ##OR ENTRYPOINT ["entrypoint.sh"]
eqqqjvef3#
您可以使用bash运行它。
RUN apk update RUN apk add bash ADD ./yourbashscript.sh . RUN bash ./yourbashscript.sh
通过这种方式,您可以根据需要运行任意多个shell脚本,而不受CMD的限制。
CMD
3条答案
按热度按时间yruzcnhs1#
您应该创建一个要复制到新容器中的shell文件,然后将容器入口点设置为您创建的shell脚本,synthax如下所示
您可以指定运行脚本所需的用户。Chmod确保脚本可以由脚本的所有者运行,您可以出于安全考虑更改它。
假设您的脚本位于/home/user/script.sh中,您可以执行以下操作
v64noz0r2#
您的docker文件如下所示
eqqqjvef3#
您可以使用bash运行它。
通过这种方式,您可以根据需要运行任意多个shell脚本,而不受
CMD
的限制。