我正在尝试修改alpine:3.4的dockerfile以包含运行git命令并自动运行nginx。以下是我附加到默认dockerfile的更改。
RUN apk update
RUN apk add git
RUN mkdir mygit
RUN cd mygit
RUN git clone 'some url'
RUN apk add sudo
RUN sudo apk add docker
RUN sudo docker run --rm --name nginx nginx
git命令成功执行,RUN apk add docker
也成功运行。但是,RUN sudo docker run --rm --name nginx nginx
失败。
这是日志。
Step 28/31 : RUN sudo apk add docker
---> Using cache
---> 1cdf3005ea4b
Step 29/31 : RUN sudo docker run --rm --name nginx nginx
---> Running in 6c8c03b8a97d
docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
答案 0 :(得分:1)
你正试图在docker中运行docker,这是&#34; not possible&#34;默认情况下。为什么不扩展<PropertyGroup>
<ScAllowCopyReferencedConfig Condition=" '$(ScAllowCopyReferencedConfig)'=='' ">false</ScAllowCopyReferencedConfig>
<AllowedReferenceRelatedFileExtensions Condition=" '$(ScAllowCopyReferencedConfig)'=='true' ">
$(AllowedReferenceRelatedFileExtensions);
</AllowedReferenceRelatedFileExtensions>
</PropertyGroup>
图像并在那里添加git?
无论如何,这感觉就像一个傻瓜的差事。相反,您应该有一个构建环境,您可以在其中将应用程序数据复制到nginx
容器中。不要试图将所有东西放在一个容器中。
例如,查看我的基于Jekyll静态站点的示例nginx
:
Dockerfile
答案 1 :(得分:0)
最好将一个容器用于一项服务。 使用Docker compose为您的用例。
为了在两个容器之间共享数据,您总是可以使用类似卷的东西(这是持久的,您的主机也可以使用它)。这将解决您的问题。