• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

제가 놓친 부분이 있는지, 과제의 업데이트가 필요한건지 확인 부탁드립니다.

22.01.22 11:49 작성 조회수 202

1

여러가지를 시도를 했는데 결국 안되서 강사님의 답안을 실행해봤습니다.

db_data 볼륨을 지우지 않아서 생기는 이슈가 발생했던 것 외에는 백엔드는 잘 실행됐습니다. 마이그레이션 디렉토리의 테이블들도 다 잘 마이그레이션 됐구요.

하지만 현재 https://hub.docker.com/r/hasura/graphql-engine에서 안내해주는 태그들에는 강사님이 사용하신 cli-migrations이 아닌 cli-migrations-v2, -v3만 나와있으며, 이 이미지들로 제가 시도했을 때는 마이그레이션에 실패해 테이블들이 보이지 않았습니다.

그리고 프론트엔드는 아래와 같은 에러가 발생하고 있습니다.

 

chatapp_1         | /usr/local/lib/node_modules/serve/node_modules/camelcase/index.js:3

chatapp_1         | const UPPERCASE = /[\p{Lu}]/u;

chatapp_1         |                   ^

chatapp_1         | 

chatapp_1         | SyntaxError: Invalid regular expression: /[\p{Lu}]/: Invalid escape

chatapp_1         |     at Object.<anonymous> (/usr/local/lib/node_modules/serve/node_modules/camelcase/index.js:3:19)

chatapp_1         |     at Module._compile (module.js:653:30)

chatapp_1         |     at Object.Module._extensions..js (module.js:664:10)

chatapp_1         |     at Module.load (module.js:566:32)

chatapp_1         |     at tryModuleLoad (module.js:506:12)

chatapp_1         |     at Function.Module._load (module.js:498:3)

chatapp_1         |     at Module.require (module.js:597:17)

chatapp_1         |     at require (internal/module.js:11:18)

chatapp_1         |     at Object.<anonymous> (/usr/local/lib/node_modules/serve/node_modules/boxen/index.js:6:19)

chatapp_1         |     at Module._compile (module.js:653:30)

 

저는 아래와 같은 docker-compose.yml 로 시도해봤는데, 고쳐야할 부분이 있다면 알려주시길 부탁드리겠습니다.

version: "3"

services:
  postgres:
    image: postgres
    restart: always
    volumes:
      - db_data:/var/lib/postgresql/data
    environment:
      POSTGRES_HOST_AUTH_METHOD: trust
  backend:
    image: hasura/graphql-engine:latest.cli-migrations-v3
    ports:
      - "60004:8080"
    depends_on:
      - "postgres"
    restart: always
    environment:
      HASURA_GRAPHQL_DATABASE_URL: postgres://postgres:@postgres:5432/postgres
      HASURA_GRAPHQL_ENABLE_CONSOLE: "true" # set to "false" to disable console
      ## uncomment next line to set an admin secret
      # HASURA_GRAPHQL_ADMIN_SECRET: myadminsecretkey
      # HASURA_GRAPHQL_MIGRATIONS_DIR: /hasura-migrations
    volumes:
      - "./hasura/migrations:/hasura-migrations"
  frontend:
    build: .
    restart: always
    ports:
      - "60003:8080"
    depends_on:
      - "backend"
volumes:
  db_data:

답변 2

·

답변을 작성해보세요.

1

안녕하세요! 확인해보니 해당 링크의 문서 내용이 최신 버전으로 변경 되었네요.

문제의 의도는 도커 컨테이너를 실행하려면 해당 도커 이미지 문서를 꼼꼼히 읽고 방법을 찾아야 한다는 걸 알려드리려고 했습니다.

도커 이미지를 직접 만들지 않고 사용하는 경우 문서에 의존할 수 밖에 없고 실제 도커를 이용하여 서비스를 운영하다보면 문서에서 필요한 명령어나 방법을 찾는 것이 중요하기 때문입니다.

말씀하신 문제는 추후 최신버전으로 업데이트 하도록 하겠습니다.

감사합니다!

0

나뭇잎님의 프로필

나뭇잎

2023.01.01

hasura 이미지 버전 "hasura/graphql-engine:v1.3.4-beta.3.cli-migrations" 으로 바꾸시면돼요.


hasura cli migration v3에서 쓰는 migrations 포맷이 강사님 자료(v1)와는 호환이 안되어서 테이블이 생성이 안되더라구요.

방법이 2가지가 있는데,

  1. migration 파일 포맷을 v3로 바꾸기

  2. hasura 버전을 v1로 사용

1이 좋은 방법이긴하나, 현재 강의 의도와는 멀어지고 시간이 걸리기에 2번으로 선택하였습니다.