docker compose의 docker network에서는 전단과 후단의 통신이 이름을 해결할 수 없습니다

개요


docker-compose에서 전단, 후단, DB 서버의 컨테이너를 시작하고 컨테이너 네트워크를 통해 각자의 통신을 한다면 개발자 이외의 사람들이 완전히 폐쇄된 네트워크를 구축할 수 있지 않을까 싶습니다.
이번에 제작된 docker-compose는 다음과 같다.
전면은 React이고 후면은 Node입니다.js(Typerom), DB 서버가 MySQL과 같은 구성으로 제작되어 각자의 용기에 이름을 붙인다.
backend-container는db-container를 참조하여 이름을 해결하고 있으며,frontend-container는backend-container를 참고하도록 합니다.
version: "3.5"
services:
  frontend:
    build:
      context: "./project01_frontend"
      dockerfile: "Dockerfile.prod"
    container_name: frontend-container
    restart: always
    tty: true
    ports:
      - "80:80"
    env_file:
      - "./project01_frontend/.env"
    depends_on:
      - "db"
      - "backend"
  backend:
    build:
      context: "./project01_backend"
      dockerfile: "Dockerfile.dev"
    container_name: backend-container
    restart: always
    tty: true
    expose:
      - "4000"
    env_file:
      - "./project01_backend/.env"
    depends_on:
      - "db"
    command: ["./wait-for-db-container.sh", "yarn", "start"]
  db:
    image: mysql:5.7.34
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: db-container
    volumes:
      - ./project01_backend/initdb.d:/docker-entrypoint-initdb.d
    environment:
      MYSQL_DATABASE: "typeorm_db"
      MYSQL_ROOT_PASSWORD: "password"
      TZ: "Asia/Tokyo"
    restart: "always"
    expose:
      - "3306"

결론


안돼.브라우저에서이런 오류가 발생했습니다.
용기 안에서fronted-container에서backend-container의 이름을 해결할 수 있지만 브라우저로는backend-container의 이름을 해결할 수 없어서 오류가 발생했습니다(backend-container에서db-container의 이름을 해결할 수 있습니다).
따라서 docker-compose를 사용하더라도 DB와 백엔드를 통일시켜 전단을 분리하거나 docker-compose를 사용하지 않고 분리해야 한다.

참고 자료


https://stackoverflow.com/questions/69110280/how-to-take-place-name-resolution-neterr-name-not-resolved-error-is-occurred
https://qiita.com/ngplus6655/items/62a147afa74ca929dd2d
https://stackoverflow.com/questions/48573612/unable-to-have-docker-containers-communicate-with-each-other
https://stackoverflow.com/questions/57143314/cant-access-rails-api-backend-with-hostname-in-docker-compose
https://mherman.org/blog/dockerizing-a-react-app/
https://syoblog.com/react-nginx-docker/
https://qiita.com/penpenta/items/345abe43f8621cbdbbe5
https://marsquai.com/745ca65e-e38b-4a8e-8d59-55421be50f7e/f83dca4c-79db-4adf-b007-697c863b82a5/3956cdb7-44ac-410b-b9bc-508c341a45ca/
https://codechacha.com/ja/dockerizing-react-with-nginx/?_gl=1 7ol36q_ga*MGVZRGtkTVFIUk8xaUllRlZiQTk1TmRoay00UU92ZDJNUFZTb2NrUHJRTEFsZnpGZmZRWjdxYldtUTlHMzdyVQ

좋은 웹페이지 즐겨찾기