加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

我可以将Docker Compose与使用构建器模式的图像一起使用吗?

发布时间:2020-12-16 03:49:17 所属栏目:安全 来源:网络整理
导读:我知道新的multi-stage build功能,它可以很好地与Docker Compose配合使用.但是,让我说我坚持使用构建器模式(不要问)有没有办法让docker-compose使用构建器模式所需的构建脚本? 考虑链接文章中的相同构建器模式文件: Dockerfile.build FROM golang:1.7.3WOR

我知道新的multi-stage build功能,它可以很好地与Docker Compose配合使用.但是,让我说我坚持使用构建器模式(不要问)…有没有办法让docker-compose使用构建器模式所需的构建脚本?

考虑链接文章中的相同构建器模式文件:

Dockerfile.build

FROM golang:1.7.3
WORKDIR /go/src/github.com/alexellis/href-counter/
RUN go get -d -v golang.org/x/net/html  
COPY app.go .
RUN go get -d -v golang.org/x/net/html 
  && CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .

Dockerfile

FROM alpine:latest  
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY app .
CMD ["./app"]

build.sh

#!/bin/sh
docker build -t alexellis2/href-counter:build . -f Dockerfile.build

docker create --name extract alexellis2/href-counter:build  
docker cp extract:/go/src/github.com/alexellis/href-counter/app ./app  
docker rm -f extract

docker build --no-cache -t alexellis2/href-counter:latest .
rm ./app

我可以构建一个像这样的Docker Compose文件,但我不知道如何从临时Docker容器中cp文件.

泊坞窗,compose.yml

version: '3'
services:
  app: 
    build: .
    depends_on:
     - app-build
  app-build:
    build:
      context: .
      dockerfile: Dockerfile.build

我可以构建临时Docker镜像/容器,并使用上面的build.sh脚本的第一部分运行cp,然后使用精简的compose文件,但是,我可能只是坚持使用脚本.

最佳答案
一种方法可以使用2个docker-compose调用,并结合目录映射:

version: '3'
services:
  app: 
    build: .

  app-build:
    build:
      context: .
      dockerfile: Dockerfile.build
    volumes:
       - ./build/:/go/src/github.com/alexellis/href-counter/

然后:

#This will produce local ./build/app artifact
docker-compose build app-build

#Having the previous artifact,will use it:
docker-compose build app

只需将其更改为Dockerfile:

COPY build/app .

但是,我建议您使用Multi Stage Build方法.比这简单得多.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读