docker-compose build
Dockerfile์์ ํค๋ฆด ๊ธฐํธ์ ์๋งํผ ์๋ฆฝ๋๋ค.
์๋ฅผ ๋ค์ด Dockerfile์ 7 ๊ฐ์ ํค๋ฆด ๊ธฐํธ๊ฐ์๋ ๊ฒฝ์ฐ ํ์ผ ๋์ ๋ง์ง๋ง 7 ๊ฐ ๊ธฐํธ๋ "์๋ฆผ"์ด๋ฉ๋๋ค.
docker-compose version
docker-compose version 1.25.0, build unknown
docker-py version: 4.1.0
CPython version: 3.8.1
OpenSSL version: OpenSSL 1.1.1d 10 Sep 2019
docker version
Client:
Version: 19.03.5-ce
API version: 1.40
Go version: go1.13.4
Git commit: 633a0ea838
Built: Fri Nov 15 03:19:09 2019
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 19.03.5-ce
API version: 1.40 (minimum version 1.12)
Go version: go1.13.4
Git commit: 633a0ea838
Built: Fri Nov 15 03:17:51 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.3.2.m
GitCommit: d50db0a42053864a270f648048f9a8b4f24eced3.m
runc:
Version: 1.0.0-rc9
GitCommit: d736ef14f0288d6993a1845745d6756cfc9ddd5a
docker-init:
Version: 0.18.0
GitCommit: fec3683
docker-compose config
see in the "steps to reproduce"
context
(๋น) ๋๋ ํฐ๋ฆฌ, docker-compose.yml
๋ฐ Dockerfile
version: '3.7'
services:
test-pass:
build:
context: .
dockerfile: Dockerfile
test-fail:
build:
context: context
# path relative to the context
dockerfile: ../Dockerfile
FROM alpine
# ััั ะธ ััั
RUN touch test
docker-compose build test-fail
docker-compose build test-fail
Building test-fail
Step 1/2 : FROM alpine
---> cdf98d1859c1
Step 2/2 : RUN touc
---> Running in fc83cc1f2b69
/bin/sh: touc: not found
ERROR: Service 'test-fail' failed to build: The command '/bin/sh -c touc' returned a non-zero code: 127
h test\n
๋ฌธ์์ด (7 ๊ฐ ๊ธฐํธ)์ด ์ฌ๋ผ์ก์ต๋๋ค.
Dockerfile์ด ์ปจํ ์คํธ ํด๋์์๋ ๊ฒฝ์ฐ์๋์ด ๋ฌธ์ ๊ฐ ๋ํ๋์ง ์์ต๋๋ค (ํ ์คํธ ํต๊ณผ ์๋น์ค ์ฐธ์กฐ).
์ด ๋ฌธ์ ๋ docker build
์ (๋ฅผ) ์ฌ์ฉํ๋ฉด ๋ํ๋์ง ์์ต๋๋ค.
์์ ๊ฒฐ๊ณผ๋ docker build
์ฌ์ฉ๊ณผ ๊ฐ์ด ์ฑ๊ณต์ ์ผ๋ก ์์ฑ ๋ ์ด๋ฏธ์ง์
๋๋ค.
docker build -f Dockerfile context
Sending build context to Docker daemon 1.583kB
Step 1/2 : FROM alpine
---> cdf98d1859c1
Step 2/2 : RUN touch test
---> Using cache
---> bb6362bff392
Successfully built bb6362bff392
N/A
๋ช ํํ ์ฌํ ์ํ๊ณผ ํ๊ดด ์กฐ๊ฑด์ ๋ํ ์ด๊ธฐ ์กฐ์ฌ๋ก์ด ๋ฌธ์ ๋ฅผ๋ณด๊ณ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋ค์ ์ฃผ์์ด ๋ฌธ์ ๋ฅผ ์กฐ์ฌํ๊ฒ ์ต๋๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก COMPOSE_DOCKER_CLI_BUILD=true
์ ์ค์ ํ์ฌ ๋ค์ดํฐ๋ธ CLI ๋น๋๋ฅผ ํ์ฑํ ํ ์ ์์ต๋๋ค (ํฅํ ๋ฆด๋ฆฌ์ค์์์ด ๊ฐ์ด ๊ธฐ๋ณธ๊ฐ์ด ๋ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค).
๋ฌธ์ (afaict)๋ https://github.com/docker/docker-py/blob/master/docker/utils/build.py#L107 -L109๋ก ์ธํด ๋ฐ์ํฉ๋๋ค.
tar ํฌ๊ธฐ๋ len(contents)
== ๋ฌธ์ ์๋ก ๊ณ์ฐ๋๋ ๋ฐ๋ฉด ์ค์ tar ํญ๋ชฉ์ contents.encode('utf-8')
๋ก ์ค์ ๋๋ฉฐ ์ผ๋ถ ๋ฌธ์๋ N> 1 ๋ฐ์ดํธ๋ก ์ธ์ฝ๋ฉ๋๋ฏ๋ก ์๋ฆฝ๋๋ค.