如何在启动时在Alpine Docker容器上运行shell脚本?

mrwjdhj3  于 2022-11-22  发布在  Docker
关注(0)|答案(3)|浏览(186)

我想在Alpine Docker容器启动时执行shell脚本。

yruzcnhs

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
v64noz0r

v64noz0r2#

您的docker文件如下所示

FROM alpine:latest

##Do your stuff

#####

##Last line
CMD ["entrypoint.sh"]
##OR
ENTRYPOINT ["entrypoint.sh"]
eqqqjvef

eqqqjvef3#

您可以使用bash运行它。

RUN apk update
RUN apk add bash
ADD ./yourbashscript.sh .
RUN bash ./yourbashscript.sh

通过这种方式,您可以根据需要运行任意多个shell脚本,而不受CMD的限制。

相关问题