2016-04-28 13 views
0

現在、いくつかのコンテナを持っているアプリがあります。AWS ECSに送信するために、隔離されたWebコンテナを作成するだけです。 docker-compose.ymlには現在、Webのports、command、envなどの情報が入っています。私のWebコンテナの実際のdockerfileにはPythonのバージョンしかありません。docker-composeビルドでコンテナイメージを作成できますか?

私はapp/webディレクトリからdocker build .を使用すると、ドッカー作成ファイルからのポート設定が届かないと思います。ドッカーの作成用Webを使用することは可能ですか?または、私のウェブディレクトリにドッカーファイルを記入する必要がありますか?私は自分のWebコンテナイメージのみをECSにプッシュしたい

なぜ私はこれをやっているのか、私はローカルではredis、nginx、postgresで開発すると思いますが、ECSには独自のオプションがあります。これらの容器を使用する必要はありません。

誰かが解消する可能性のある重大な誤解がありますか?

+0

docker-composeビルドウェブは単語にする必要があります。あなたはすでに試しましたか? – mayid

答えて

1

Dockerイメージにポート設定を保存できる唯一の方法は、DockerfileでEXPOSEコマンドを使用することです。これにより、実行時にこれらのポートがリッスンしていることをドッカーに通知します。 Dockerは-Pオプションをdocker runに指定した場合、画像のEXPOSEのすべてのポートをホストのランダムな番号の高いポートにバインドします。また、この情報を使用して、ホストに公開されていない場合でも、リンクされたすべてのコンテナでこれらのポートを使用できるようにします。

DockerファイルにEXPOSEを使用せずに画像を作成してプッシュすると、すべてがうまく動作します(すでにdocker-compose.ymlにポートがマッピングされているためです)。しかし、あなたのアプリケーションがDockerfileでリッスンするすべてのポートをEXPOSEにすることをお勧めします。

1

ecs-cliを使用すると、ドッカー作成ファイルをecsにプッシュできます。ワークフローは次のようにソートのです:

1)ecs-cli configureを実行し、ドッキングウィンドウの画像

3の構築)

2を使用するためにどのようなクラスタにそれを伝える)gitのコミットまたは日付に基づいたバージョンでそれにタグをつけますまたは両方

4)を実行ECSリポジトリ

5)にドッカー画像をプッシュecs-cli compose service up

これは私が

rm ~/.ecs/config 
ecs-cli configure --region eu-central-1 --access-key AYAYAYAYAYAY1212121 --secret-key secretfaskdjfalsdfkja;sdjfalsdf --cluster "<clustername>" 


VERSION="$(git log --pretty=format:'%h' -n 1)-$(date +%Y-%m-%d-%H-%M-%S)" 
docker tag image_name:latest "123123123123.abc.def.eu-central-1.amazonaws.com/image_name:$VERSION" 
docker push "123123123123.abc.def.eu-central-1.amazonaws.com/image_name:$VERSION" 

VERSION="$VERSION" ecs-cli compose --file <path/to/docker-compose.yml> -p <service-name> service up 

ドッキングウィンドウ-compose.ympサンプル使用していたスクリプトの一種である:これは、タスクの新しいインスタンスを作成し、そのタスクを実行するために、あなたのサービスを構成します

version: '2' 
services: 
    stage-backend: 
    image: 123123123123.abc.def.eu-central-1.amazonaws.com/image_name:${VERSION} 
    cpu_shares: 750 
    mem_limit: 1000000000 
    ports: 
     - "0:8080" 
    environment: 
     FOO: "bar" 

を。

関連する問題