2017-06-18 12 views
0

私はDockerに少し新しくなっています。
私は、docker-composeを使用して2つのコンテナを実行しています。
1つはAPIであり、もう1つは実際のアプリケーションです。
私はPostgresの公式画像を使用して新しいDBコンテナを追加したいと思います。
コンテナを作成し、(スキーマとデータの)事前定義されたSQLファイルを使用してコンテナを作成する方法に関する簡単なチュートリアルを見つけるのは少し難しいです。
ドッキング用のコンテナ内で実行中のPostgresサービスを作成する

私はDockerfileに「CMDが開始/etc/init.d/postgresql」を起動すると、私はというエラーが出ます:「いいえ、PostgreSQLのクラスタが存在しません。参照 『男pg_createcluster』 ...(警告)。」

私は事態を進めるのに時間がかかりすぎるので、イメージを使用する方法についてはソースが1つしかないので、Ubuntuイメージを取得してPostgresを自分でインストールする方が良いかどうか疑問に思っていた私はそれをよく理解していないようです。

この画像の作成方法と設定方法についてのアイデアや簡単な手順はありますか?

答えて

0

あなたには、いくつかのファイルを使用してデータベースを作成したい場合は、これを行うための単純な方法は次のとおりです。

あなたが を派生画像に追加の初期化をしたいと思った場合は、このイメージ

を拡張する方法これから、 /docker-entrypoint-initdb.d(必要に応じてディレクトリを作成する)の下に* .sql、* .sql.gz、* .shスクリプトを1つ以上追加します。 エントリポイントがデフォルトのpostgresユーザ とデータベースを作成するためにinitdbをコールした後、* .sqlファイルを実行し、* .shスクリプト をそのディレクトリに置くと、さらに初期化が行われます。 サービスを開始します。

Dockerfile

FROM postgres:alpine 
COPY init.sql /docker-entrypoint-initdb.d/init.sql 

ドッキングウィンドウ-compose.yml

version: '3' 
services: 
    app: 
    //your app definition 
    postgres: 
    build: . 
+0

TNX、そしてどのように私は、コンテナ内のpostgresサーバを実行しますか? – Loves2Develop

+0

oficialイメージからのコマンドは、プロセスを実際に実行します。それを上書きする必要はありません。 – German

+0

確かに... 私のymlファイルの最初のスクリプトを上書きしたため、元のpostgresイメージスクリプトが無視され、psqlサーバーが起動しなかったという事実でした。 私の質問に答える時間をとってくれてありがとう@German – Loves2Develop

関連する問題