ジェンキン用のドッカービルドを適応させようとしています。私は docker-compose ファイルに従っており、各コンテナーを作成してそれらをリンクする Jenkinsfile を作成しています。私が直面している問題は、docker-compose ファイルが Dockerfile の場所ではないコンテキストを宣言していることです。私が理解している限り、jenkins はコンテキストを Dockerfile の場所に設定します。これにより、jenkinsfile または docker-compose ファイルがビルドされているかどうかに応じて、コピーされるファイルが異なる相対位置に配置されます。
フォルダ構造は次のとおりです。
workspace
|-docker
|-db
|-Dockerfile
|-entrypoint.sh
これは、Dockerfile が問題のファイルの COPY 命令を宣言する方法です。
COPY docker/db/entrypoint.sh /
これは、私の jenkinsfile がファイルを作成する方法です。私の知る限り、そのディレクトリにコンテキストを配置するのはどれですか
docker.build("db", "${WORKSPACE}/docker/db")
docker-compose ファイルは次のように宣言します。
db:
build:
context: .
dockerfile: docker/db/Dockerfile
これにより、コンテキストがプロジェクトのルートに配置されます。
Dockerfile の COPY 命令が変更されず、Jenkins と docker-compose の両方で有効になるように、jenkinsfile に docker-compose ファイルと同じコンテキストを使用するように指示する方法はありますか? それが不可能な場合、誰かが代替ソリューションを知っていますか?