Dockerfile 여러줄 파일 생성하기

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 }}