在Dockerfile中运行脚本
我正在尝试在Dockerfile的构建过程中运行脚本。但这似乎不起作用。
我尝试过这种方式:
FROM php:7-fpmADD bootstrap.sh /
ENTRYPOINT ["/bin/bash", "/bootstrap.sh"]
也这样:
FROM php:7-fpm ADD bootstrap.sh /
RUN bash -c "/bootstrap.sh"
并且也执行我正在运行的容器:
docker exec symfony /bin/bash -c "/bootstrap.sh"
似乎没有任何作用。
你知道怎么做吗?
回答:
RUN
和ENTRYPOINT
是执行脚本的两种不同方式。
RUN
意味着它将创建一个中间容器,运行脚本并将该容器的新状态冻结在新的中间映像中。此后该脚本将不再运行:您的最终图像应该反映出该脚本的结果。
ENTRYPOINT
表示您的映像(尚未执行脚本)将创建一个容器并运行该脚本。
在这两种情况下,都需要添加脚本,并且a RUN chmod +x /bootstrap.sh
是个好主意。
它也应该以shebang开头(如#!/bin/sh
)
考虑到您的脚本(KevinRaimbaud/docker-
symfony/docker/php/bootstarp.sh:几个git config
--global命令),最好在Dockerfile中运行一次该脚本,但请确保使用正确的用户(全局git
config文件为%HOME%/。gitconfig,默认情况下为/ root一个)
添加到您的Dockerfile中:
RUN /bootstart.sh
然后,在运行容器时,检查的内容/root/.gitconfig
以确认脚本已运行。
以上是 在Dockerfile中运行脚本 的全部内容, 来源链接: utcz.com/qa/436079.html