오늘도 한 뼘 더

[AWS] ElasticBeanstalk에서 Docker Application 사용하기 본문

DevOps & Infra/AWS

[AWS] ElasticBeanstalk에서 Docker Application 사용하기

나른한댕댕이🐶 2023. 4. 19. 14:11
728x90
반응형

  # 배경  

모든 환경에서 Dockerfile을 사용하여 코드를 배포하기 위해서 Elastic Beanstalk(이하 EB)에 Dockerfile을 사용하여 Docker Application으로 올려보기로 하였다. 

 

  # Docker Application 환경 구성  

Elastic Beanstalk의 구성은 이전에 진행한 방법과 다를 것이 없었다. 

Application을 생성할 때 플랫폼을 Docker로 선택해야 한다는 것 외에는 다 같은 방식으로 진행하였다. 

2021.11.11 - [DevOps & Infra/AWS] - [AWS] ElasticBeanstalk 생성하기

 

[AWS] ElasticBeanstalk 생성하기

AWS ElasticBeanstalk 이란? https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/Welcome.html AWS Elastic Beanstalk란 무엇입니까? - AWS Elastic Beanstalk AWS Elastic Beanstalk란 무엇입니까? Amazon Web Services(AWS)는 100개 이상의

baekji919.tistory.com

 

  # Dockerfile  

소스코드 빌드를 위한 이미지를 만들기 위한 Dockerfile을 작성한다.

FROM golang:1.19 AS builder
WORKDIR /go/src/test-service
COPY . .
# disable cgo
ENV CGO_ENABLED=0
RUN go mod download
RUN go install

# install php extensions, apache/nginx etc.
# make application docker image use alpine
FROM alpine:3.16
# using timezone
ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Seoul
RUN apk add -U tzdata
WORKDIR /go/bin/

# copy execute file to image
COPY --from=builder /go/bin/test-service .
EXPOSE 8080

CMD ["./test-service"]

 

  # Dockerrun.aws.json  

Docker로 동작을 시키기 위해서는 해당 소소코드에 Docker를 실행시킬 수 있는 Dockerrun.aws.json 파일이 필요하다

{
  "AWSEBDockerrunVersion": "1",
  "Image": {
    "Name": "jihyunb/test-service:latest",
    "Update": "true"
  },
  "Ports": [
    {
      "ContainerPort": "8080",
      "HostPort": "8080"
    }
  ]
}
728x90
반응형
Comments