github action 설정

gradle.yml

도커 허브 관련 구문 삭제하고

ECR 설정 추가

- name: Configure AWS credentials
      uses: aws-actions/configure-aws-credentials@v1
      with:
        aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
        aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        aws-region: ${{ secrets.AWS_REGION }}

    - name: Login to Amazon ECR
      id: login-ecr
      uses: aws-actions/amazon-ecr-login@v1

    - name: Build, tag, and push image to Amazon ECR
      id: build-image
      env:
        ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
        ECR_REPOSITORY: beerair-ecr
        IMAGE_TAG: latest
      run: |
        docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
        docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
        echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG"

    - name: Get current time
      uses: 1466587594/get-current-time@v2
      id: current-time
      with:
        format: YYYYMMDD_HH-mm-ss
        utcOffset: "+09:00"

    - name: Generate deployment package
      run: |
        mkdir -p deploy
        cp -r .ebextensions deploy/.ebextensions
        cp Dockerrun.aws.json deploy/Dockerrun.aws.json 
        cd deploy && zip -r deploy.zip .

    - name: Beanstalk Deploy
      uses: einaregilsson/beanstalk-deploy@v14
      with:
        aws_access_key: ${{ secrets.AWS_ACCESS_KEY_ID }}
        aws_secret_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        application_name: BEERAiR-ECR
        environment_name: Beerairecr-env
        version_label: docker-${{steps.current-time.outputs.formattedTime}}
        region: ap-northeast-2
        deployment_package: deploy/deploy.zip
        wait_for_environment_recovery: 200

AWS_REGION Github Secrets 생성하기

Dockerrun.aws.json

{
	"AWSEBDockerrunVersion": "1",
	"Image": {
		"Name": "375839059348.dkr.ecr.ap-northeast-2.amazonaws.com/beerair-ecr:latest",
		"Update": "true"
	},
	"Ports": [
		{
		"ContainerPort": "5000",
		"HostPort": "5000"
		}
	]
}

도커파일 빌드 에러

Step 5/11 : RUN --mount=type=cache,target=/root/.gradle ./gradlew clean build
the --mount option requires BuildKit. Refer to <https://docs.docker.com/go/buildkit/> to learn how to build images with BuildKit enabled
Error: Process completed with exit code 1.

--mount=type=cache 가 도커허브에서 제공하는 기능 같음…?

지우니깐 작동 됨!