私は docker-compose を使用していますが、さまざまなサービスのビルド ステップにさまざまな Dockerfile を使用したいと考えています。ドキュメントは、異なる Dockerfile を異なるディレクトリに配置することを提案しているようですが、それらをすべて同じディレクトリに配置したいと思います (そして、次の規則を使用しておそらく区別できます: Dockerfile.postgres、Dockerfile.main ...)。これは可能ですか?
編集:私が持っているシナリオには、このdocker-composeファイルが含まれています:
main:
build: .
volumes:
- .:/code
environment:
- DEBUG=true
postgresdb:
extends:
file: docker-compose.yml
service: main
build: utils/sql/
ports:
- "5432"
environment:
- DEBUG=true
のpostgresdb
Dockerfile は次のとおりです。
FROM postgres
# http://www.slideshare.net/tarkasteve/developerweek-2015-docker-tutorial
ADD make-db.sh /docker-entrypoint-initdb.d/
主なものは次のとおりです。
FROM python:2.7
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
ADD . /code/
postgresdb
これは今のところ機能しますが、SQL Alchemy に基づいて構築されたモデルに従ってデータベースにテーブルを作成する Python スクリプトを呼び出して、 の Dockerfileを拡張したいと思います (Python スクリプトは として呼び出されますpython manage.py create_tables
)。データベースの Dockerfile に追加したかったのですが、コンテナーが分離されているため、そのイメージはpostgres
Python ではなくイメージに基づいており、sqlalchemy
パッケージが含まれていないため、そこで SQL Alchemy を使用できません...
私に何ができる?main
でサービスを使用しようとしましたpostgresdb
が、残念ながら python とそのパッケージを引き継いでいないため、(シェル スクリプトを介して) Postgres データベースとそのテーブルを (. Python スクリプト)。