Docker 不同用户的音量
Docker VOLUME for different users
我正在使用 docker 和 docker-compose 构建我的应用程序。 github.
上托管的项目现在有两名开发人员
我们的项目结构是:
- 苏普
- docker个文件
- 开发
- 建立
- .个人资料
- Docker 文件
- docker-compose.yml
现在我们有 ./dockerfiles/dev/docker-compose.yml
这样的:
app:
container_name: sup-dev
build: ./build
和./dockerfiles/dev/build/Dockerfile
:
FROM sup:dev
# docker-compose tries to find .profile relative to build dir:
# ./dockerfiles/dev/build
COPY .profile /var/www/
我们运行这样的容器:
docker-compose up -d
一切正常,但由于 OS 不同,我们的代码在不同的地方:/home/aliance/www/project
对我,/home/user/other/path/project
对第二个开发人员。所以我不能只将音量指令添加到 Dockerfile
.
现在我们用这种错误的方式来解决这个问题:
- 我将 lsyncd 与我的个人配置一起使用,将文件传输到容器中
- 虽然第二个使用 volume
指令进入 Dockerfile
但没有提交它。
也许你知道我如何为 docker-compose
编写一个统一的 Dockerfile
以将代码从不同的路径输出到应用程序容器中?
也许您应该将 Dockerfile 保存在项目的根目录下。然后你可以在 Dockerfile 中添加一条指令:
COPY ./ /usr/src/app/
或(产品中不推荐)
VOLUME /usr/src/app
+(选择 运行 容器,因为我不知道 docker-compose)
-v /path/to/your/code:/usr/src/app
主机上的文件路径无关紧要。为什么需要绝对路径?
您可以使用相对于 docker-compose.yml
的路径,因此它们对两个开发人员来说应该是相同的。
Dockerfile 中的 VOLUME
指令始终与构建上下文相关,因此如果您愿意,可以使用如下内容:
app:
container_name: sup-dev
build: ..
dockerfile: build/Dockerfile
这样 Dockerfile
的构建上下文将成为项目根目录。
我正在使用 docker 和 docker-compose 构建我的应用程序。 github.
上托管的项目现在有两名开发人员我们的项目结构是:
- 苏普
- docker个文件
- 开发
- 建立
- .个人资料
- Docker 文件
- docker-compose.yml
- 建立
- 开发
- docker个文件
现在我们有 ./dockerfiles/dev/docker-compose.yml
这样的:
app:
container_name: sup-dev
build: ./build
和./dockerfiles/dev/build/Dockerfile
:
FROM sup:dev
# docker-compose tries to find .profile relative to build dir:
# ./dockerfiles/dev/build
COPY .profile /var/www/
我们运行这样的容器:
docker-compose up -d
一切正常,但由于 OS 不同,我们的代码在不同的地方:/home/aliance/www/project
对我,/home/user/other/path/project
对第二个开发人员。所以我不能只将音量指令添加到 Dockerfile
.
现在我们用这种错误的方式来解决这个问题:
- 我将 lsyncd 与我的个人配置一起使用,将文件传输到容器中
- 虽然第二个使用 volume
指令进入 Dockerfile
但没有提交它。
也许你知道我如何为 docker-compose
编写一个统一的 Dockerfile
以将代码从不同的路径输出到应用程序容器中?
也许您应该将 Dockerfile 保存在项目的根目录下。然后你可以在 Dockerfile 中添加一条指令:
COPY ./ /usr/src/app/
或(产品中不推荐)
VOLUME /usr/src/app
+(选择 运行 容器,因为我不知道 docker-compose)
-v /path/to/your/code:/usr/src/app
主机上的文件路径无关紧要。为什么需要绝对路径?
您可以使用相对于 docker-compose.yml
的路径,因此它们对两个开发人员来说应该是相同的。
Dockerfile 中的 VOLUME
指令始终与构建上下文相关,因此如果您愿意,可以使用如下内容:
app:
container_name: sup-dev
build: ..
dockerfile: build/Dockerfile
这样 Dockerfile
的构建上下文将成为项目根目录。