에러 내용
ERROR: In file './docker-compose.yml', service 'front' must be a mapping not a string.
docker-compose up 명령 시 위와 같은 메시지가 나오고 더 이상 앱을 빌드하지 않습니다.
에러 원인
docker-copose.yml의 문법 오류(syntax error)가 원인입니다.
보통 들여쓰기를 하지 않아 발생합니다. 하지만 저의 경우는 띄어쓰기를 실수하여 발생하였습니다.
해결 방법
docker compose specification을 참고하여 문법 오류를 수정하면 해결됩니다.
자주 실수하는 문법 오류는 다음과 같습니다.
- 들여 쓰기(indentation) : 공백 두 개
- 띄어쓰기(spacing) : ":" 뒤에 공백 하나
수정 전 코드 예시
# Use root/example as user/password credentials
version: '3.8'
services:
front:
image:node # 띄어쓰기가 없습니다.
restart: always
command : /bin/bash
tty: true
koj:
image: node
restart: always
command : /bin/bash
tty: true
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
back:
image: node
depends_on:
- mongo
ports:
- "3000:3000"
command : /bin/bash
tty: true
수정 후 코드 예시
# Use root/example as user/password credentials
version: '3.8'
services:
front:
image: node # 띄어쓰기가 들어가도록 수정되었습니다.
restart: always
command : /bin/bash
tty: true
koj:
image: node
restart: always
command : /bin/bash
tty: true
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
back:
image: node
depends_on:
- mongo
ports:
- "3000:3000"
command : /bin/bash
tty: true
아래는 문법 오류를 수정하여 에러가 해결되어 docker-compose up이 정상 작동하는 모습입니다.
참고 자료
'개발 > 에러해결' 카테고리의 다른 글
export 'Switch' (imported as 'Switch') was not found in 'react-router-dom' (0) | 2022.10.22 |
---|---|
docker-compose 시 exited with code 0 또는 무한 재시작 (0) | 2022.10.22 |
Error: Cannot find module 'semver' (0) | 2022.10.22 |
n stable 후 node old version (0) | 2022.10.22 |
Dockerfile build 시 timezone 해결법 (0) | 2022.10.21 |
댓글