Docker Composeでうまく動作する新しいmulti-stage build機能について認識しています。しかし、私はビルダーパターンに悩まされています(質問しないでください)... docker-compose up
ビルダーパターンに必要なビルドスクリプトを使用する方法はありますか?ビルダーパターンを使用する画像で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
私ができますc Dockerを作成するこのファイルのようなファイルを作成しますが、私はどのようにしてcp
の一時的なDockerコンテナからファイルを取得するのか分かりません。
ドッキングウィンドウ-compose.yml
version: '3'
services:
app:
build: .
depends_on:
- app-build
app-build:
build:
context: .
dockerfile: Dockerfile.build
私は一時的なドッカーイメージ/コンテナを構築し、上からbuild.sh
スクリプトの最初の部分を使用して、その後、剥ぎ取らコンファイルを使用してcp
を実行することができますが、それでは、スクリプトに固執することもできます。
私は同意して努力するつもりですが、私たちの生活を簡素化し、ビルダーパターンの画像のトンを持っている必要があります:( –
大丈夫、それと幸運:) – Robert