개발/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

 

 

 

* 잘못되거나 아쉬운 점 있으시면 얼마든지 알려주시면 감사하겠습니다!