본문 바로가기
개발/에러해결

docker-compose 시 exited with code 0 또는 무한 재시작

by amkorousagi 2022. 10. 22.

에러 내용


docker-compose 시 exited with code 0 또는 무한 재시작

docker-compose up
exited with code 0

docker-compose 시 exited with code 0 가 나옵니다.

always: true로 설정했을 시 exited with code 0 가 무한히 나옵니다.

에러 원인


docker container는 하나의 명령어를 실행합니다.

명령어의 수행이 끝나면 종료합니다.(정상적인 종료 == exit code 0)

 

따라서, 명령어를 주지 않거나 단발적으로 실행되고 끝나는 명령어( ls 같은)를 주면 곧바로 컨테이너가 종료됩니다.

정상적인 종료임으로 code 0를 반환하며 종료됩니다.

 

해결 방법


끝나지 않는 명령을 시키거나 명령이 끝나도 종료되지 않도록 설정합니다.

 

1. "command: node index.js"등 종료되지 않는 명령어를 수행하도록 합니다.

# Use root/example as user/password credentials
version: '3.8'

services:
  back:
    image: node
    ports:
      - "3000:3000"
    command: node /app/index.js # 종료되지 않는 명령어
    volumes:
      - ./koj/:/app/

 

또는

 

1. "stdin_open: true"나 "tty: true"로 명령어 수행이 종료되더라도 컨테이너가 종료되지 않도록 합니다. 

# Use root/example as user/password credentials
version: '3.8'

services:
  front:
    image: node
    container_name: front
    restart: always
    volumes:
      - ./front/:/app/
    ports:
      - "3001:3001"
    tty: true # 둘 중 하나만 써도 종료되지 않습니다.
    stdin_open: true # 둘 중 하나만 써도 종료되지 않습니다.

 

+

docker-compose의 tty: true는 docker run의 -t 옵션과 같습니다.

docker-compose의 stdin_open: true는 docker run의 -i 옵션과 같습니다.

-t              : Allocate a pseudo-tty
-i              : Keep STDIN open even if not attached

-t : 유사 터미널을 할당합니다.

-i : 백그라운드에서 돌아가더라도 표준 입력을 열도록 유지합니다.

 

참고 자료


 

 

exited with code 0 docker

I'm trying to launch container using docker-compose services.But unfortunetly, container exited whith code 0. Containers is build thanks to a repository which is from a .tar.gz archive. This archiv...

stackoverflow.com

 

 

Docker run reference

 

docs.docker.com

 

댓글