Docker-compose는 "--network" 옵션의 사용을 방지하는 새로운 구문을 도입했습니다. 이 환경에서 golang- migration을 사용하여 마이그레이션을 실행하는 것에 대한 질문을 제기합니다. 이 문서에서는 docker-compose를 사용하여 golang- migration을 설정하고 다른 컨테이너의 데이터베이스에 연결하는 방법을 살펴봅니다.
golang에 명시된 다음 명령 - migration 문서는 하나의 폴더에서 모든 마이그레이션을 실행하는 데 사용할 수 있습니다.
docker run -v migration-dir:/migrations --network host migrate/migrate -path=/migrations/ -database postgres://localhost:5432/database up 2
이 구문을 docker-compose에 적용하려면 다음을 수행합니다. 다음 접근 방식을 사용하십시오.
docker-compose.yml 파일에 다음 구성을 추가합니다.
db: image: postgres networks: new: aliases: - database environment: POSTGRES_DB: mydbname POSTGRES_USER: mydbuser POSTGRES_PASSWORD: mydbpwd ports: - "5432" migrate: image: migrate/migrate networks: - new volumes: - .:/migrations command: ["-path", "/migrations", "-database", "postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable", "up", "3"] links: - db networks: new:
이 구성은 새로운 구성을 설정합니다. "new"라는 네트워크를 만들고 "db" 및 "마이그레이션" 서비스를 모두 추가합니다. "db" 서비스는 데이터베이스 역할을 하고 "마이그레이션" 서비스는 마이그레이션을 실행하는 데 사용됩니다.
"--network 호스트를 사용하는 대신 " 옵션을 사용하면 네트워크를 설정하고 해당 네트워크 내에서 별칭인 "데이터베이스"를 통해 데이터베이스에 연결합니다. 이를 통해 "마이그레이션" 서비스가 마치 로컬 호스트에서 실행 중인 것처럼 "db" 서비스와 상호 작용할 수 있습니다.
"명령" 섹션에 사용된 연결 문자열은 다음 연결 방법을 반영합니다.
"postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable"
이제 docker-compose up을 실행하면 마이그레이션이 성공적으로 실행되고 데이터베이스 컨테이너에 연결됩니다.
위 내용은 `--network 호스트` 없이 Docker Compose를 사용하여 Golang-Migrate 데이터베이스 마이그레이션을 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!