2017-07-08 18 views
0

私はdocker-compose.yamlファイルを作成しています。これは、pypiローカルリポジトリと作成中のdevアプリケーションを持つコンテナを作成する必要があります。問題は、カスタムネットワークと指定されたホスト名を作成して、コンテナが互いを見ることができないという事実を思い起こさせることです。Dockerコンテナはホスト名を解決できません

具体的には、pypiが動作している必要があります。私のテストでは、私は手動でそれを走らせました。そして、msalembicは、ローカルのpypiリポジトリを使って卵を読み込むべきです。しかし、私はピピの宿主を見ることができません。 AlembicMSDockerfileの

version: '3' 
services: 
    # Alembic MS 
    msalembic: 
    build: 
     context: . 
     dockerfile: AlembicMSDockerfile 
    ports: 
     - "5432:5432" 
    hostname: alembicms 
    volumes: 
     - "${PWD}/msalembic/postgres/psql_data:/var/lib/postgresql/data" 
    environment: 
     POSTGRES_USER: ${PGUSER} 
     POSTGRES_PASSWORD: ${PGPASSWORD} 
     POSTGRES_DB: goodboy 
     ENVIRONMENT: ${ENVIRONMENT} 
    networks: 
     - custom_network 
    depends_on: 
     - pypi 
    # Private internal Pypi repository 
    pypi: 
    build: 
     context: pypi 
     dockerfile: Dockerfile 
     args: 
      HTACCESS: ${HTACCESS} 
    hostname: pypi 
    volumes: 
     - "${PWD}/pypi/:/srv/pypi:rw" 
    ports: 
     - "9090:80" 
    container_name: pypi 
    networks: 
     - custom_network 
networks: 
    custom_network: 

内容:もちろん

FROM python:3.6 
MAINTAINER Bruno Ripa <XXX> 
#RUN pip install -f http://pypi:9090 --trusted-host pypi alembicms 
RUN ping pypi 
ENTRYPOINT ["alembicms"] 

私は地元のは、PyPIリポジトリにパッケージを参照し、公開することができます。

ありがとうございました。

答えて

0

指定したポートマッピングは、コンテナのポートがホストネットワークに公開されている場合(ホストからhttp://localhost:9090経由でアクセスする場合など)にのみ有効です。

ドッカーネットワーク内でコンテナをリンクすると、サービスはDockerfileで定義されたポートで公開されます。したがって、ポートマッピングに従って、pypiコンテナはポート80を公開します。これは、同じドッカーネットワーク内の別のコンテナからアクセスする場合にも使用する必要があります。

したがって、のAlembicMSDockerfileのイメージを実行すると、ドッカーネットワーク経由でポート80のpypiコンテナにアクセスできます。あなたの特別なケースでは、alembic msイメージのビルド時にすでにピピのコンテナにアクセスしたいと思っています。 the issues hereから読むことができるように、これは現在、ドッカーの作成中にはサポートされていません。

これがリリースされていない限り、pypiコンテナを単独で実行し、docker build --net=host --add-host=pypi_on_host:<yourhostip> --file=AlembicMSDockerfileを使用してから、http://pypi_on_host:9090を使用するようにRUNコマンドを変更することができます。ドッカーの内部ネットワーク)。実際にはエレガントではありませんが、少なくともDockerファイルにホストIPへの直接参照はありません。

+0

フィードバックをお寄せいただきありがとうございます。 –

関連する問題