首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不同用户的码头容积

不同用户的码头容积
EN

Stack Overflow用户
提问于 2015-11-25 12:40:22
回答 2查看 522关注 0票数 3

我正在使用docker和docker-组合来构建我的应用程序。github上托管的项目现在有两个开发人员。

我们的项目结构是:

  • sup
    • 码头文件
      • dev
        • 构建
          • .profile
          • Dockerfile

代码语言:javascript
运行
复制
        - docker-compose.yml

现在我们有了这样的./dockerfiles/dev/docker-compose.yml

代码语言:javascript
运行
复制
app:
    container_name: sup-dev
    build: ./build

./dockerfiles/dev/build/Dockerfile

代码语言:javascript
运行
复制
FROM sup:dev

# docker-compose tries to find .profile relative to build dir:
# ./dockerfiles/dev/build
COPY .profile /var/www/

我们运行的容器如下:

代码语言:javascript
运行
复制
docker-compose up -d

一切都很好,但由于操作系统不同,我们的代码位于不同的位置:/home/aliance/www/project用于我,/home/user/other/path/project用于第二个开发人员。因此,我不能仅仅将卷指令添加到Dockerfile中。

现在,我们以错误的方式解决了这个问题:-我使用lsyncd和我的个人配置来将文件传输到容器中,而第二个使用volume指令到Dockerfile中,但没有实现它。

您可能知道,如何为Dockerfile编写一个统一的docker-compose,以便从不同的路径将代码卷到app容器中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-25 21:44:16

主机上的文件路径不重要。你为什么需要绝对的途径?

您可以使用相对于docker-compose.yml的路径,因此对于两个开发人员来说,它们应该是相同的。

Dockerfile中的VOLUME指令总是相对于构建上下文,因此,如果需要,可以使用如下内容:

代码语言:javascript
运行
复制
app:
    container_name: sup-dev
    build: ..
    dockerfile: build/Dockerfile

这样,Dockerfile的构建上下文将成为项目根。

票数 2
EN

Stack Overflow用户

发布于 2015-11-25 14:08:55

也许您应该将Dockerfile保存在项目的根上。然后可以在Dockerfile中添加一条指令:

代码语言:javascript
运行
复制
COPY ./ /usr/src/app/

或(prod中不推荐)

代码语言:javascript
运行
复制
VOLUME /usr/src/app
  • (在运行容器时选项,因为我不知道docker-组合)
代码语言:javascript
运行
复制
-v /path/to/your/code:/usr/src/app
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33916793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档