buildspec-docker.yml

version: 0.2

env:
  variables:
    AWS_REGION: "REGION"
    ECR_REPO_NAME: "ECR_REPO_NAME"
    AWS_ACCOUNT_ID: "AWS_ACCOUNT_ID"

phases:
  install:
    runtime-versions:
      python: 3.8
  pre_build:
    commands:
      - echo Logging in to Amazon ECR...
      - aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com
  build:
    commands:
      - python3 -m compileall src/app.py
      - mv src/__pycache__/*.pyc ./app.pyc
      - time=$(date -d "+9 hours" +'%y%m%d%H%M%S')
      - docker build -t $ECR_REPO_NAME .
      - docker tag $ECR_REPO_NAME:latest $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/$ECR_REPO_NAME:$time
      - docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/$ECR_REPO_NAME:$time
  post_build:
    commands:
      - echo Build completed on `date`
artifacts:
  files:
    - app.pyc

Dockerfile

FROM python:3.8-alpine
WORKDIR /app
COPY app.pyc .
RUN pip3 install --no-cache-dir flask &&  apk add --no-cache curl && rm -rf /root/.cache/
EXPOSE 80
CMD ["flask", "run", "host=0.0.0.0", "port=80"]

Git Repo Push

스크린샷 2025-01-05 오후 11.32.41.png

Name : wsi-api-release

스크린샷 2025-01-05 오후 11.34.47.png

Github Repo 선택 후 소스 버전 release 입력

스크린샷 2025-01-05 오후 11.35.17.png

아마존 리눅스 선택 후 이미지 버전 5.0 선택 IAM Role : wsi-api-release-role

스크린샷 2025-01-05 오후 11.37.22.png

환경변수 입력

스크린샷 2025-01-06 오전 12.34.38.png