0

編集:申し訳ありませんが、私はこの質問の最初の部分について間違いました。ドッカーの作成と同時統合テスト

は、だから私は、同期実行したときに正常に動作していますdocker-compose.yamlを持っています。しかし、私はそれが並列に動作するかどうかをテストするために、2つのまたは3つのジョブを起動したときdocker-compose build && docker-compose up --abort-on-container-exit

:このコマンドで起動

server: 
    build: . 
    dockerfile: "./docker/integration_tests/server/Dockerfile" 
    links: 
    - mongo 
    environment: 
    - "MONGO_URI=mongodb://mongo:27017/company" 

mongo: 
    image: 'mongo:3.2.6' 
    ports: 
    - "27017" 

(これはJenkinsのパイプラインを使用しているので、別のディレクトリがあります)私は仕事Aでこれを見ています:

Successfully built 7b23b3a7b823 
+ docker-compose up --abort-on-container-exit 
Creating companyservercicd3_mongo_1 

ERROR: for mongo Cannot start service mongo: driver failed programming external connectivity on endpoint companyservercicd3_mongo_1 (422826f73ce76526e4072f72a2b44467f9080e79a24d37d1fe2bba903854a698): Bind for 0.0.0.0:27017 failed: port is already allocated 
Encountered errors while bringing up the project. 

ジョブBでこの:

Successfully built 80aa795867eb 
+ docker-compose up --abort-on-container-exit 
Creating companyservercicd4_mongo_1 

ERROR: for mongo Cannot start service mongo: driver failed programming external connectivity on endpoint companyservercicd4_mongo_1 (1591f2847e6c0d81f2c530874201ea912fa59ea35bfa27e5b25d7843e06da6b5): Bind for 0.0.0.0:27017 failed: port is already allocated 
Encountered errors while bringing up the project. 

ドキュメントはports設定オプションについてはこれを言う:

ポートを公開します。両方のポート(HOST:CONTAINER)、または コンテナポート(ランダムなホストポートが選択されます)のどちらかを指定します。

私は27017がコンテナ内にあり、各ジョブにはそれぞれ独自のコンテナがあると考えていたので、何かを誤解する必要があります。私はここで間違って何をしていますか?

もう少し関連する質問 - これはJenkinsがジョブごとに新しいディレクトリを作成しているので名前の競合はないので、Jenkinsではうまくいきますが、名前空間の競合はありません。自分の名前がありますか?

`docker-compose run --rm --no-deps --name `uuidgen` ...` 

しかし、それはだから私は、これは誤報だったと思います私のドッキングウィンドウ-compose.ymlを手直しし、同等の build/create/start/attach

答えて

0

upコマンドを変換するために私を必要とする:他のユーザーが回避策としてこれを行うことをお勧め - 各リスト項目の番号をportsにすると、私が経験していたポート競合が修正されました。

私はそうのようdocker-compose buildupを呼び出すことによって、十分なユニークな(したがって、同時実行するなど弾力的ではない)されていない名前を固定:COMPOSE_ID=のuuidgen _; docker-compose -p $COMPOSE_ID build && docker-compose -p $COMPOSE_ID up --abort-on-container-exit、実際に私は「私のdocker-compose.yml

+0

に住んでテストを実行するコマンドであなたの答えによってちょっと混乱していますが、あなたが示された構成ファイルがあなたがジェンキンで走っていたものではないと言っていますか?また、 '$ COMPOSE_PROJECT_NAME'を設定し、' -p $ COMPOSE_ID'を削除することもできます。 https://docs.docker.com/compose/reference/envvars/ – BMitch

+0

を参照してください。私はそれが起こったと思います。恐らく私が持つことができるほど慎重に使用したエラーと設定を追跡していませんでした。最初の部分を編集することはできません。無関係で、2番目の部分は残しておくと便利です。 +1プロジェクト名を設定するには、気づかなかった。 – Justin

関連する問題