share facebook facebook twitter menu hatena pocket slack

2018.10.15 MON

別docker-compose同士のネットワークを繋げる方法

甲斐 甲

WRITTEN BY 甲斐 甲

概要

docker-composeを利用して、Vue.jsのコンテナ、APIモックサーバのコンテナを作成して、開発をしているのですが、gitリポジトリを別にしようとするとdocker-compose.ymlを分割→ネットワークが別になってコンテナ内からAPIへアクセスできなくなって困った。ので、どうにかならないか調べて見ました。

解決

docker-compose で別の docker-compose.yml で作ったコンテナとリンクする (ネットワークを繋げる)
https://qiita.com/reneice/items/20e981062b093264cd0a

上記記事がとても参考になりました。感謝!

参考までにdocker-compose.ymlの定義です。

Vue.jsやモックサーバのコンテナ構築については下記をご参考ください。

DockerでVue.js+TypeScript開発環境を構築する
https://cloudpack.media/43078

Dockerとapi blueprint+aglio+drakovを使ってAPI開発を楽にする
https://cloudpack.media/43386

APIのdocker-compose.yml

docker-compose.yml

version: '3'

services:
  drakov:
    build: .
    ports:
      - "3001:3001"
    volumes:
      - "./docs:/projects"
    tty: true
    command: drakov -f "**/*.md" --public --watch --p 3001

Vue.js側

docker-compose.yml

version: '3'

services:
  app:
    build: .
    ports:
      - "8080:8080"
    volumes:
      - ".:/projects"
    tty: true
    networks:
      - [APIのネットワーク名]
networks:
    [APIのネットワーク名]:
      external: true

[APIのネットワーク名]はAPIのコンテナを実行後、以下コマンドで取得できるネットワークのリストのNAME になります。

> docker network ls

NETWORK ID          NAME                    DRIVER              SCOPE
xxxxxxxxxxxx        xxxxxx_default          bridge              local

これで、Vue.jsのコンテナ内からAPIモックサーバのコンテナへアクセスできるようになりました。

> curl http://xxxxxx_drakov_1:3001/

やったぜ。

参考

docker-compose で別の docker-compose.yml で作ったコンテナとリンクする (ネットワークを繋げる)
https://qiita.com/reneice/items/20e981062b093264cd0a

DockerでVue.js+TypeScript開発環境を構築する
https://cloudpack.media/43078

Dockerとapi blueprint+aglio+drakovを使ってAPI開発を楽にする
https://cloudpack.media/43386

Vue.js+TypeScriptで開発するときの参考記事まとめ
https://cloudpack.media/43084

元記事はこちら

別docker-compose同士のネットワークを繋げる方法

甲斐 甲

甲斐 甲

2018/7にJOIN。 最近の好みはサーバレスです。なんでもとりあえず試します。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。