作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
由于我的项目结构,我面临着大型 docker 构建上下文的问题。在我的根目录中,我有用于公共(public)代码的 lib 文件夹和微服务文件夹。现在我想为 miscroservice1 构建只包含 lib 文件夹并忽略其他微服务。
我在根文件夹中运行 docker build 命令,因为在微服务文件夹中运行命令会在构建上下文之外给出错误 Forbidden path
rootFolder
-- lib
-- microservice1/Dockerfile
-- microservice2/Dockerfile
-- microservice3/Dockerfile
最佳答案
您可以创建.dockerignore
在您的根目录中并添加
microservice1/
microservice2/
microservice3/
给它,就像
.gitignore
在跟踪文件期间,docker 将在构建期间忽略这些文件夹/文件。
docker-compose.yml
根目录下的文件,查看
docker-compose对于所有选项,例如设置
environment
,运行特定命令等,您可以在构建过程中使用。
version: "3"
services:
microservice1:
build:
context: .
dockerfile: ./microservice1/Dockerfile
volumes:
- "./path/to/share:/path/to/mount/on/container"
ports:
- "<host>:<container>"
links:
- rootservice # defines a dns record in /etc/hosts to point to rootservice
microservice2:
build:
context: .
dockerfile: ./microservice2/Dockerfile
volumes:
- "./path/to/share:/path/to/mount/on/container"
ports:
- "<host>:<container>"
links:
- rootservice # defines a dns record in /etc/hosts to point to rootservice
- microservice1
rootservice:
build:
context: .
dockerfile: ./Dockerfile
volumes:
- "./path/to/share:/path/to/mount/on/container"
ports:
- "<host>:<container>"
depends_on:
- microservice1
- microservice2
ports:
- "<host1>:<container1>"
- "<host2>:<container2>"
这将是您的
microservices
的构建配方,您现在可以运行
docker-compose build
构建所有图像。
关于docker - 如何忽略要在 docker build 上下文中发送的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57740571/
我是一名优秀的程序员,十分优秀!