gpt4 book ai didi

docker-compose volume 没有出现在容器中

转载 作者:行者123 更新时间:2023-12-02 18:31:17 26 4
gpt4 key购买 nike

我正在尝试用一个 docker-compose 构建一个堆栈,其中应该包含另一个容器。这是为了运行一个包含我所有项目的开发环境。

所以问题是带有应用程序源的卷没有出现在构建的图像上。

MacOS Sierra
Docker version 17.03.0-ce, build 60ccb22
Boot2Docker-cli version: v1.8.0

我的目录树

/dockers                 <======= one directory with all docker files for each project

docker-compose.yml <======= The main image

/project1 <======= dockerfile for each project
Dockerfile
/project2
Dockerfile
/project3
Dockerfile

/project1 <======= project1 source folder
test.txt
/project2
/project3

我的 docker-compose.yml

project1:
build: ./project1
volumes:
- ../project1/:/src

我的 project1

的 dockerfile
FROM python:2.7

RUN mkdir -p /src

WORKDIR /src
RUN echo "---------------------"
RUN ls -la
RUN echo "---------------------"

所以我尝试构建 docker-compose 文件

$ sudo docker-compose build --no-cache

然后当我期望 test.txt 文件时它显示一个空文件夹

Building express
ERROR: Cannot locate specified Dockerfile: Dockerfile
➜ docker git:(master) ✗ sudo docker-compose build --no-cache
Building project1
Step 1/7 : FROM python:2.7
---> ca388cdb5ac1
Step 2/7 : RUN mkdir -p /src
---> Running in 393a462f7a44
---> 4fbeb32d88b3
Removing intermediate container 393a462f7a44
Step 3/7 : WORKDIR /src
---> 03ce193577ab
Removing intermediate container b1cd746b699a
Step 4/7 : RUN echo "--------------------------"
---> Running in 82df8a512c90
----------------------------
---> 6dea58ba5051
Removing intermediate container 82df8a512c90
Step 5/7 : RUN ls -la
---> Running in 905417d0cd19
total 8
drwxr-xr-x 2 root root 4096 Mar 23 17:12 . <====== EMPTY :(
drwxr-xr-x 1 root root 4096 Mar 23 17:12 .. <====== EMPTY :(
---> 53764caffb1a
Removing intermediate container 905417d0cd19
Step 6/7 : RUN echo "-----------------------------"
---> Running in 110e765d102a
----------------------------
---> b752230fd6dc
Removing intermediate container 110e765d102a
Step 7/7 : EXPOSE 3000
---> Running in 1cfe2e80d282
---> 5e3e740d5a9a
Removing intermediate container 1cfe2e80d282
Successfully built 5e3e740d5a9a

最佳答案

卷是 Docker 中的运行时配置。因为它们是可配置的,所以如果您要在构建阶段引用卷,您实际上会创建一个潜在的不可检查的中断依赖项。

我敢肯定还有更多的技术原因 - 但确实不应该这样做。将所有这些东西移到运行时设置命令中,你应该没问题。

关于docker-compose volume 没有出现在容器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42982881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com