Dockerfile ๋น๋ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค๊ณ ์์ผ๋ฉฐ bash ๋ช ๋ น์ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค. RUN์ ๊ธฐ๋ณธ์ ์ผ๋ก / bin / sh๋ฅผ ์ฌ์ฉํฉ๋๋ค. RUN์ / bin / bash๋ฅผ ๋์ ์ฌ์ฉํ๋๋ก ์ง์ํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
์๋์, "/ bin / sh -c"๋ก ํ๋ ์ฝ๋ฉ๋์์ต๋๋ค.
๋ฌผ๋ก ์ด์ ๋น๋ ๋จ๊ณ์์ / bin / bash๋ฅผ / bin / sh์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
๊ฒฐ๊ตญ Dockerfile ์คํฌ๋ฆฝํธ๋ฅผ ๋ณ๊ฒฝํ์ฌ ํ์ผ์ ๋ณต์ฌํ๊ณ bash์์ ์ฌ์ฉํ๋ ๋ฆฌ๋๋ ์ ์ ์ฌ์ฉํ๋ ๋์ ์ฌ์ฉํ์ต๋๋ค.
@dwatrous ์๋ ํ์ต๋๊น RUN ["echo", "hello"]
์ (๋) /bin/sh
IIRC์ ์ํด ๋ํ๋์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ ๋์ ์ผ๋ก bash๋ฅผ ์ํ๋ฉด RUN ["/bin/bash", "-c", "echo hello all in one string"]
ํธ์ถ ํ ์ ์์ต๋๋ค.
๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋์ง ์๋ ค์ฃผ์ญ์์ค.
bash๋ RUN
์ง์นจ์์ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
bash๋ก ๋ณ๊ฒฝํ ์ ์๋๋ก ํ ์๋ ๋ ๊ณํ์ด ์์ต๋๋ค.
๋ฌธ์ํ๋ฅผ ์ํ ์ ์์ผ๋ฏ๋ก ๋ฌธ์ ๋ฌธ์ ๋ก ํ์ํ๊ฒ ์ต๋๋ค. ์ด ์ง๋ฌธ์ด ๋์จ ๊ฒ์ ์ธ ๋ฒ์งธ ๋๋ ๋ค ๋ฒ์งธ์ ๋๋ค.
https://github.com/docker/docker/pull/7489 ๋ก ์ธํด ์ง๊ธ ๋ซ์ ์ ์์ต๋๋ค.
๊ทธ๋์ ์ด๊ฒ์ ๋ํ ์ด์ผ๊ธฐ๋ ๋ฌด์์ ๋๊น?
@ORESoftware ์์ ๋
ผ์๋ฅผ ์ฐธ์กฐํ๊ณ SHELL
Dockerfile ๋ช
๋ น (Docker 1.12 ์ด์)์ ์ถ๊ฐ ํ https://github.com/moby/moby/pull/22489๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๋จ์ผ RUN
๋ํด ๋ค๋ฅธ ์
ธ์ ์ฌ์ฉํ๋ ค๋ฉด ์์์ ์ค๋ช
ํ๋๋ก Exec ํ์ (JSON) ํ๊ธฐ๋ฒ์ ์ฌ์ฉํฉ๋๋ค.
RUN ["/bin/bash", "-c", "echo I am now using bash!"]
์ด๋ฏธ์ง์ ๊ธฐ๋ณธ ์
ธ์ ๋ณ๊ฒฝํ๋ ค๋ฉด (๊ทธ๋ฆฌ๊ณ ๋น๋ ์ค์) https://github.com/moby/moby/pull/22489 ์ ๊ตฌํ ๋ SHELL
Dockerfile ๋ช
๋ น์ ์ฌ์ฉํฉ๋๋ค.
SHELL ["/bin/bash", "-c"]
RUN echo I am now using bash!
๋๋ ์์ ์กฐํฉ
FROM ubuntu
RUN echo I am using the default (/bin/sh)
RUN ["/bin/bash", "-c", "echo I am using bash"]
SHELL ["/bin/bash", "-c"]
RUN echo I am using bash, which is now the default
RUN ["/bin/sh", "-c", "echo I am using /bin/sh"]
RUN ["echo", "I don't use a shell at all"]
๋๋ ๋ด๊ฐ ํํฐ์ ๋ฆ์๋ค๋ ๊ฒ์ ์๊ณ ์์ผ๋ฉฐ ์ด๊ฒ์ด ์ต์ ์ ํด๊ฒฐ์ฑ ์ ์๋์ง๋ง ๋ด๊ฐ ํ์ํ ๊ฒ์ ์ํด ์ผํ์ต๋๋ค.
SDK๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์ถ์ถํ ํ Docker ํ์ผ์์ ๋ค์ ๋ ๋ช ๋ น์ ์คํํฉ๋๋ค.
cp / bin / bash / bin / sh ์คํ
RUN echo "source ~ / google-cloud-sdk / path.bash.inc">> ~ / .bashrc
์คํ ์์ค ~ / .bashrc
๊ทธ ํ์๋ ๋น๋ ๋ฐ ๋ฐํ์์ gcloud ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์๊ฒฉํ OCI ์ฌํ์ฑ์ ๊ด์ฌ์ด์๋ ์ฌ๋๋ค์ ์ํด Dockerfile ํธ์ถ SHELL
๋ podman 1.4์ ๋ฐ๋ผ OCIv1 ์ฌ์์์๋ ๊ฒ ๊ฐ์ต๋๋ค.
2 ๋จ๊ณ : ์ [ "/ bin / bash", "-c"]
ERRO [0000] SHELL์ OCI ์ด๋ฏธ์ง ํ์์ ์ง์๋์ง ์์ต๋๋ค. [/ bin / bash -c]๋ ๋ฌด์๋ฉ๋๋ค.docker
ํ์์ ์ฌ์ฉํด์ผํฉ๋๋ค.
์ ๋ฐ์ดํธ : thaJeztah๊ฐ ์ฌ๋ฐ๋ฅธ ๊ฒ ๊ฐ์ต๋๋ค. buildah์์์ด ๊ธฐ๋ฅ์ ์ง์ํ๋ ๊ฒ์ ๋ํ ๋ ผ์ : https://github.com/containers/buildah/issues/507
์
๋ฐ์ดํธ BUILDAH_FORMAT=docker
: ๊ตฌ์ถ
@qhaas ๋ ๊ทธ๊ฒ์ด OCI ์ฌ์๊ณผ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํ์ง ์๊ณ ๋จ์ง buildah ๊ตฌํ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@ORESoftware ์์ ๋ ผ์๋ฅผ ์ฐธ์กฐํ๊ณ
SHELL
Dockerfile ๋ช ๋ น (Docker 1.12 ์ด์)์ ์ถ๊ฐ ํ https://github.com/moby/moby/pull/22489๋ฅผ ์ฐธ์กฐํ์ญ์์ค.๋จ์ผ
RUN
๋ํด ๋ค๋ฅธ ์ ธ์ ์ฌ์ฉํ๋ ค๋ฉด ์์์ ์ค๋ช ํ๋๋ก Exec ํ์ (JSON) ํ๊ธฐ๋ฒ์ ์ฌ์ฉํฉ๋๋ค.์ด๋ฏธ์ง์ ๊ธฐ๋ณธ ์ ธ์ ๋ณ๊ฒฝํ๋ ค๋ฉด (๊ทธ๋ฆฌ๊ณ ๋น๋ ์ค์) https://github.com/moby/moby/pull/22489 ์ ๊ตฌํ ๋
SHELL
Dockerfile ๋ช ๋ น์ ์ฌ์ฉํฉ๋๋ค.๋๋ ์์ ์กฐํฉ