Docker-compose では、「--network」オプションの使用を妨げる新しい構文が導入されました。この環境で golang-merge を使用して移行を実行することについて疑問が生じます。この記事では、docker-compose を使用して golang-merge を設定し、別のコンテナーのデータベースに接続する方法について説明します。
golang で説明されている次のコマンド- 移行ドキュメント。すべての移行を 1 つのフォルダーで実行するために使用できます。
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 host」を使用する代わりに" オプションを使用すると、ネットワークを確立し、そのネットワーク内のエイリアス「データベース」を介してデータベースに接続します。これにより、「移行」サービスは、あたかもローカルホスト上で実行されているかのように「db」サービスと対話できるようになります。
「コマンド」セクションで使用される接続文字列は、次の接続方法を反映しています:
"postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable"
これで、docker-compose up を実行すると、移行が正常に実行され、データベース コンテナーに接続されるはずです。
以上が「--network host」を使用せずに Docker Compose を使用して Golang-Migrate データベース移行を実行する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。