docker에서 >>
가 동작하지 않는다 / hosts 변경 방법
docker 에서 /etc/hosts 변경
Dockerfile 에서 아래처럼 >>
를 사용해봤다.
# Dockerfile
...
RUN cat /tmp/hosts >> /etc/hosts
...
아래처럼 error 가 발생했다.
> [7/7] RUN cat /tmp/hosts >> /etc/hosts:
#11 0.321 /bin/sh: /etc/hosts: Read-only file system
------
failed to solve: rpc error: code = Unknown desc = executor failed running [/bin/sh -c cat /tmp/hosts >> /etc/hosts]: exit code: 1
ref. 1 에 보면 이유를 알 수 있는데, Docker 가 /etc/hosts
file 을 container 가 시작할 때 생성한다고 한다. 그래서 CMD
를 이용해서 container 에서 실행하도록 해야 한다.
CMD cat /tmp/hosts >> /etc/hosts
하지만 이것도 build 시점에 error 를 보여주진 않지만, 원하는대로 동작하지 않는다.
/etc/hosts 를 변경하지 말고, extra_hosts
를 사용하자.
ref. 2 에 보면, build 시점에 /etc/hosts 를 하지말라고 한다. container 가 실행되는 시점에 바꿔야 한다고 한다.
그래서 2가지 방법을 알려준다.
- docker run –add-host=
- docker compose 의 extra_hosts directive
# compose.yml
extra_hosts:
- "somehost:162.242.195.82"
- "otherhost:50.31.209.229"
댓글 없음:
댓글 쓰기