各位码头工人(Dockerians)们,有没有过这样的经历?你精心撰写了一个Dockerfile,感觉自己就是当代的容器魔法师。然后你切换到终端,深吸一口气,开始吟唱冗长的咒语:
docker build -t my-app:latest -f ./service1/Dockerfile ./service1
docker build -t my-other-service:latest --build-arg ENV=prod ./service2
# ... 还有第三个、第四个服务...
还没开始运行,你的手指和耐心就已经在构建第一层镜像时消耗殆尽了。这就好比你想吃个煎饼果子,结果需要自己支摊、磨绿豆、摊饼、打鸡蛋、炸薄脆……一套流程下来,饿都饿过头了。
别怕!Docker Compose的 build 命令就是你的“全能煎饼果子车”!它一键搞定所有“烹饪”(构建)流程,让你瞬间从“小摊贩”升级为“连锁店老板”,优雅地管理和构建多服务镜像。
今天,咱们就把这辆“煎饼果子车”—— docker compose build 命令,里里外外、从上到下研究个透!
一、 “煎饼车”的基础结构:docker-compose.yml 中的 build 块
在Docker Compose的魔法世界里,docker-compose.yml是你的“菜单和流水线设计图”。要使用“构建”功能,你需要在服务定义下告别image,拥抱build。
一个最基础的“食谱”长这样:
version: '3.8'
services:
webapp:
build: .
ports:
- "5000:5000"
就这么简单!这行build: .告诉Docker Compose:“嘿,哥们,去当前目录(.)找找有没有叫Dockerfile的食谱,然后按照它给我‘煎’一个镜像出来。”
当你运行docker compose build时,Compose会为你执行docker build .命令。但它的强大远不止于此。
二、 “煎饼果子”高级定制:build 的详细参数解析
真正的“美食家”当然要懂得定制。build指令支持一个详细的字典形式,让你精细控制构建过程。
services:
custom-service:
build:
context: ./dir-with-dockerfile # 基础食材采购地
dockerfile: Docke

最低0.47元/天 解锁文章
813

被折叠的 条评论
为什么被折叠?



