Java アプリ用に Bitbucket Pipelines をセットアップしています。達成したいのは、何かをブランチ マスターとマージするたびに、Bitbucket がパイプラインを開始することです。最初のステップでアプリケーションをビルドしてテストし、2 番目のステップでそれから Docker イメージをビルドし、 ECRにプッシュします。問題は、すべてのステップが別個の新しい Docker コンテナーで行われるため、最初のステップで作成された JAR ファイルを 2 番目のステップで使用できないことです。それを解決する方法はありますか?
私の現在のファイルは次のとおりです。
1) Bitbucket-pipelines.yaml
pipelines:
branches:
master:
- step:
name: Build and test application
services:
- docker
image: openjdk:11
caches:
- gradle
script:
- apt-get update
- apt-get install -y python-pip
- pip install --no-cache-dir docker-compose
- bash ./gradlew clean build test testIntegration
- step:
name: Build and push image
services:
- docker
image: atlassian/pipelines-awscli
caches:
- gradle
script:
- echo $(aws ecr get-login --no-include-email --region us-west-2) > login.sh
- sh login.sh
- docker build -f Dockerfile -t my-application .
- docker tag my-application:latest 212234103948.dkr.ecr.us-west-2.amazonaws.com/my-application:latest
- docker push 212234103948.dkr.ecr.us-west-2.amazonaws.com/my-application:latest
2) Dockerfile:
FROM openjdk:11
VOLUME /tmp
EXPOSE 8080
COPY build/libs/*.jar app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
そして私が受け取るエラー:
Step 4/5 : COPY build/libs/*.jar app.jar
COPY failed: no source files were specified