"Dockerfile 여러줄 파일 생성하기"의 두 판 사이의 차이

 
(같은 사용자의 중간 판 14개는 보이지 않습니다)
2번째 줄: 2번째 줄:
;How to write commands with multiple lines in Dockerfile
;How to write commands with multiple lines in Dockerfile
;Dockerfile 여러줄 파일 생성하기
;Dockerfile 여러줄 파일 생성하기
;Dockerfile에서 cat <<EOF 사용하기 대안


==방법 1: 중괄호 ★ ==
==방법 1: 중괄호 ★ ==
* bash(debian), sh(alpine)에서 모두 사용가능
* bash(debian), sh(alpine)에서 모두 사용가능하다.
* echo는 여러번 써야 한다.
<syntaxhighlight lang='Dockerfile'>
<syntaxhighlight lang='Dockerfile'>
FROM alpine
FROM alpine
RUN set -x; \
RUN set -x \
{ \
&& { \
echo 'opcache.memory_consumption=128'; \
echo 'opcache.memory_consumption=128'; \
echo 'opcache.interned_strings_buffer=8'; \
echo 'opcache.interned_strings_buffer=8'; \
19번째 줄: 21번째 줄:
tester@localhost:~/temp1$ docker build -t test1 .
tester@localhost:~/temp1$ docker build -t test1 .
Step 1/2 : FROM alpine
Step 1/2 : FROM alpine
latest: Pulling from library/alpine
df20fa9351a1: Pull complete
Digest: sha256:185518070891758909c9f839cf4ca393ee977ac378609f700f60a771a2dfe321
Status: Downloaded newer image for alpine:latest
  ---> a24bb4013296
  ---> a24bb4013296
Step 2/2 : RUN set -x; { echo 'opcache.memory_consumption=128'; echo 'opcache.interned_strings_buffer=8'; echo 'opcache.max_accelerated_files=4000'; echo 'opcache.revalidate_freq=60'; } > /tmp/php.ini && cat /tmp/php.ini
Step 2/2 : RUN set -x && { echo 'opcache.memory_consumption=128'; echo 'opcache.interned_strings_buffer=8'; echo 'opcache.max_accelerated_files=4000'; echo 'opcache.revalidate_freq=60'; } > /tmp/php.ini && cat /tmp/php.ini
  ---> Running in 79e419624a7e
  ---> Running in abb4fb5928f6
+ echo 'opcache.memory_consumption=128'
+ echo 'opcache.memory_consumption=128'
+ echo 'opcache.interned_strings_buffer=8'
+ echo 'opcache.interned_strings_buffer=8'
35번째 줄: 33번째 줄:
opcache.max_accelerated_files=4000
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.revalidate_freq=60
Removing intermediate container 79e419624a7e
Removing intermediate container abb4fb5928f6
  ---> 6399defa315d
  ---> 5ef4c21faaf0
Successfully built 6399defa315d
Successfully built 5ef4c21faaf0
Successfully tagged test1:latest
Successfully tagged test1:latest
</syntaxhighlight>
</syntaxhighlight>


==방법 2: 따옴표==
==방법 2: 따옴표==
* bash(debian)에서 사용가능
* sh(alpine)에서는 안되고, bash(debian)에서 가능하다.
* sh(alpine)에서는 사용불가
* echo를 한번만 써도 된다.
* \n를 각행에 추가해야 한다.
<syntaxhighlight lang='Dockerfile'>
<syntaxhighlight lang='Dockerfile'>
FROM debian
FROM debian
70번째 줄: 69번째 줄:
Successfully built f2d024a63785
Successfully built f2d024a63785
Successfully tagged test1:latest
Successfully tagged test1:latest
</syntaxhighlight>
==방법 3: 여러번==
* echo 와  >> 를 여러번 쓴다.
<syntaxhighlight lang='Dockerfile'>
FROM debian
RUN set -x \
&& echo "opcache.memory_consumption=128"    >> /tmp/php.ini \
&& echo "opcache.interned_strings_buffer=8"  >> /tmp/php.ini \
&& echo "opcache.max_accelerated_files=4000" >> /tmp/php.ini \
&& echo "opcache.revalidate_freq=60"        >> /tmp/php.ini \
&& cat /tmp/php.ini
</syntaxhighlight>
</syntaxhighlight>


==같이 보기==
==같이 보기==
* [[Dockerfile]]
* [[Dockerfile]]
* [[cat ≪EOF|cat <<EOF]]


==참고==
==참고==

2022년 6월 24일 (금) 17:12 기준 최신판

1 개요[ | ]

How to write commands with multiple lines in Dockerfile
Dockerfile 여러줄 파일 생성하기
Dockerfile에서 cat <<EOF 사용하기 대안

2 방법 1: 중괄호 ★[ | ]

  • bash(debian), sh(alpine)에서 모두 사용가능하다.
  • echo는 여러번 써야 한다.
FROM alpine
RUN set -x \
&& { \
echo 'opcache.memory_consumption=128'; \
echo 'opcache.interned_strings_buffer=8'; \
echo 'opcache.max_accelerated_files=4000'; \
echo 'opcache.revalidate_freq=60'; \
} > /tmp/php.ini \
&& cat /tmp/php.ini
tester@localhost:~/temp1$ docker build -t test1 .
Step 1/2 : FROM alpine
 ---> a24bb4013296
Step 2/2 : RUN set -x && { echo 'opcache.memory_consumption=128'; echo 'opcache.interned_strings_buffer=8'; echo 'opcache.max_accelerated_files=4000'; echo 'opcache.revalidate_freq=60'; } > /tmp/php.ini && cat /tmp/php.ini
 ---> Running in abb4fb5928f6
+ echo 'opcache.memory_consumption=128'
+ echo 'opcache.interned_strings_buffer=8'
+ echo 'opcache.max_accelerated_files=4000'
+ echo 'opcache.revalidate_freq=60'
+ cat /tmp/php.ini
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
Removing intermediate container abb4fb5928f6
 ---> 5ef4c21faaf0
Successfully built 5ef4c21faaf0
Successfully tagged test1:latest

3 방법 2: 따옴표[ | ]

  • sh(alpine)에서는 안되고, bash(debian)에서 가능하다.
  • echo를 한번만 써도 된다.
  • \n를 각행에 추가해야 한다.
FROM debian
RUN set -x \
&& echo "\
opcache.memory_consumption=128\n\
opcache.interned_strings_buffer=8\n\
opcache.max_accelerated_files=4000\n\
opcache.revalidate_freq=60" > /tmp/php.ini \
&& cat /tmp/php.ini
tester@localhost:~/temp1$ docker build -t test1 .
Step 1/2 : FROM debian
 ---> f6dcff9b59af
Step 2/2 : RUN set -x && echo "opcache.memory_consumption=128\nopcache.interned_strings_buffer=8\nopcache.max_accelerated_files=4000\nopcache.revalidate_freq=60" > /tmp/php.ini && cat /tmp/php.ini
 ---> Running in 0ad3fea1ece3
+ echo opcache.memory_consumption=128\nopcache.interned_strings_buffer=8\nopcache.max_accelerated_files=4000\nopcache.revalidate_freq=60
+ cat /tmp/php.ini
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
Removing intermediate container 0ad3fea1ece3
 ---> f2d024a63785
Successfully built f2d024a63785
Successfully tagged test1:latest

4 방법 3: 여러번[ | ]

  • echo 와 >> 를 여러번 쓴다.
FROM debian
RUN set -x \
&& echo "opcache.memory_consumption=128"     >> /tmp/php.ini \
&& echo "opcache.interned_strings_buffer=8"  >> /tmp/php.ini \
&& echo "opcache.max_accelerated_files=4000" >> /tmp/php.ini \
&& echo "opcache.revalidate_freq=60"         >> /tmp/php.ini \
&& cat /tmp/php.ini

5 같이 보기[ | ]

6 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}