포스트

[Docker compose][에러] docker-compose.yml: services.mysql.networks.0 must be a string


mysql 이라는 서비스에는 default network가 아닌 별도의 커스텀 네트워크와 고정 서브넷IP를 연결해주기 위해서 docker-compose.yml을 수정하였었음.

그래서 도커 컴포즈 파일에 mysql 서비스를 작성하고 docker compose up -d 명령어로 도커를 실행할 시 생긴 에러메시지.



1
2
docker-compose.yml: services.mysql.networks.0 must be a string



아래와 같이 작성한 docker-compose.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  mysql:
    image: mysql:5.7
    container_name: mysqldb
    volumes:
      - mydb_mysql:/var/lib/mysql
    restart: always
    environment:
      MYSQL_DATABASE: mysql
      MYSQL_ROOT_PASSWORD: mysql_root_pwd
      MYSQL_USER: mysql_user
      MYSQL_PASSWORD: mysql_pwd
    networks:
      - backend_network:
          ipv4_address: "172.20.0.10"

networks:
  backend_network:
    name: my_backend_network
    ipam:
      driver: default
      config:
        - subnet: "172.20.0.0/24"
          gateway: "172.20.0.1"

도커의 작성 문법에 어긋남. 아래 예시는 도커 문법에 맞는 작성 예시.



' - ' 을 지운다.

1
2
3
    networks:
      backend_network:
          ipv4_address: "172.18.111.1"


아래 ipv4_address를 지정해주는 란을 넣지 않으면 그대로 ' - ' 을 써도 된다.

1
2
    networks:
      - backend_network




https://docs.docker.com/compose/compose-file/compose-file-v3/#network-configuration-reference https://docs.docker.com/compose/networking/ https://docs.docker.com/compose/compose-file/05-services/#links https://docs.docker.com/compose/compose-file/06-networks/

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.