|
6 | 6 |
|
7 | 7 | env: |
8 | 8 | AWS_REGION: ap-northeast-2 |
9 | | - ECR_REPOSITORY: routebox-dev |
10 | 9 | EB_APP_NAME: routebox |
11 | 10 | EB_ENV_NAME: Routebox-dev-env |
12 | | - DOCKER_IMAGE_TAG: ${{ github.sha }} |
13 | 11 | JAR_FILE: routebox-0.0.1.jar |
| 12 | + VERSION_LABEL: ${{ github.run_number }}-${{ github.sha }} |
14 | 13 |
|
15 | 14 | permissions: |
16 | 15 | contents: read |
@@ -51,26 +50,26 @@ jobs: |
51 | 50 | aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} |
52 | 51 | aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} |
53 | 52 | aws-region: ${{ env.AWS_REGION }} |
| 53 | + |
| 54 | + - name: Create Procfile |
| 55 | + run: echo "web: java -jar build/libs/${{ env.JAR_FILE }} --server.port=5000" > Procfile |
54 | 56 |
|
55 | | - - name: Copy dev compose file |
56 | | - run: cp docker-compose.dev.yml docker-compose.yml |
57 | | - |
58 | | - - name: Copy JAR to Docker build context |
59 | | - run: cp build/libs/${{ env.JAR_FILE }} app.jar |
60 | | - |
61 | | - - name: Login to Amazon ECR |
62 | | - id: login-ecr |
| 57 | + - name: Create .ebextensions for Java configuration |
63 | 58 | run: | |
64 | | - aws ecr get-login-password --region $AWS_REGION | \ |
65 | | - docker login --username AWS --password-stdin ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.$AWS_REGION.amazonaws.com |
66 | | -
|
67 | | - - name: Build, tag, and push Docker image to Amazon ECR |
68 | | - id: build-image |
| 59 | + mkdir -p .ebextensions |
| 60 | + cat > .ebextensions/java-options.config << 'EOL' |
| 61 | + option_settings: |
| 62 | + aws:elasticbeanstalk:application:environment: |
| 63 | + JAVA_OPTS: "-Xms256m -Xmx512m" |
| 64 | + aws:elasticbeanstalk:environment:proxy:staticfiles: |
| 65 | + /static: static |
| 66 | + EOL |
| 67 | +
|
| 68 | + - name: Create deployment package |
69 | 69 | run: | |
70 | | - IMAGE_URI=${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.$AWS_REGION.amazonaws.com/$ECR_REPOSITORY:$DOCKER_IMAGE_TAG |
71 | | - docker build -t $IMAGE_URI . |
72 | | - docker push $IMAGE_URI |
73 | | - echo "image=$IMAGE_URI" >> $GITHUB_OUTPUT |
| 70 | + mkdir -p deploy |
| 71 | + cp -r build/libs/${{ env.JAR_FILE }} Procfile .ebextensions deploy/ |
| 72 | + cd deploy && zip -r ../deploy.zip . |
74 | 73 |
|
75 | 74 | - name: Install EB CLI |
76 | 75 | run: | |
|
79 | 78 |
|
80 | 79 | - name: EB Init |
81 | 80 | run: | |
82 | | - eb init ${{ env.EB_APP_NAME }} --platform "Docker running on 64bit Amazon Linux 2023" --region ${{ env.AWS_REGION }} |
| 81 | + eb init ${{ env.EB_APP_NAME }} --platform "Corretto 17 running on 64bit Amazon Linux 2023" --region ${{ env.AWS_REGION }} |
83 | 82 | eb use ${{ env.EB_ENV_NAME }} |
84 | 83 |
|
85 | 84 | - name: Deploy to Elastic Beanstalk |
86 | | - run: eb deploy --staged --verbose --timeout 30 |
| 85 | + run: eb deploy --staged --timeout 30 --version=${{ env.VERSION_LABEL }} --source=deploy.zip |
0 commit comments