개발/Docker
Docker-compose 올린 ubuntu 서버가 계속 재시작되는 문제
nyukist
2023. 3. 18. 16:23
python + mysql로 이것저것 만들기위해 파이썬 개발용 컨테이너를 만들었다.
ubuntu:22.04 컨테이너와 mysql:8.0 컨테이너를 연결시키고 아래 실행 명령어를 쳤는데
$ docker-compose up -d # 또는 docker-compose up
우분투에 접속이 안되어서 $ docker ps 로 상태를 보니 ubuntu 가 무한 재시작이 되고 있었다..
docker-compose.yml 을 아래처럼 썼었는데
version: '0.1'
services:
ubuntu:
image: ubuntu
build:
context: ./ubuntu
dockerfile: ./Dockerfile
restart: unless-stopped
links:
- 'db:mysql'
volumes:
- ./python-scripts/:/home/python-user/work
container_name: ubuntu
depends_on:
- db
db:
image: mysql
restart: always
volumes:
- ./python-db:/var/lib/mysql/
env_file:
- ./env/.mysql.env
container_name: mysql
해결방법은 생각보다 간단했다.
ubuntu 서비스 부문 밑에
command: tail -f /dev/null
추가하면 된다.
아래는 최종본이다!
services:
ubuntu:
image: ubuntu
build:
context: ./ubuntu
dockerfile: ./Dockerfile
restart: unless-stopped
links:
- 'db:mysql'
volumes:
- ./python-scripts/:/home/python-user/work
container_name: ubuntu
depends_on:
- db
command: tail -f /dev/null
요약
docker-compose ubuntu가 계속 restarting 된다면, command: tail -f /dev/null 추가해보자.
알고보니 이러한 현상의 원인은 나의 잘못이였다.
우분투 Dockerfile에 아래 코드 입력해놓고
CMD ["tail", "-f", "/dev/null"]
docker-compose.yml 엔 build: dockerfile: Dockerfile 가리키게 했으면서 build를 안하고 docker-compose를 실행해서 일어나는 현상으로 보인다..
그래서 위처럼 docker-compose.yml 에 command 입력하고 docker-compose를 실행하는 방법과
command 입력안하고 Dockerfile 에 아래코드를 넣었는지 확인한 뒤,
CMD ["tail", "-f", "/dev/null"]
아래 명령어로 빌드 및 실행하는 방법이 있는 걸로 보인다.
$ docker-compose up --build
* 잘못되거나 아쉬운 점 있으시면 얼마든지 알려주시면 감사하겠습니다!