DevOps

[Springboot] Docker+Elastic Beanstalk +Github action ๋‹ฌ๊ณ  CI/CDํ•ด๋ณด์ž!

Alchemists 2023. 1. 14. 16:58
728x90

์Šคํ”„๋ง๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ์— ๋„์ปค๋ฅผ ๊ฐ์‹ธ๊ณ  Github Action์œผ๋กœ CI CD๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‚ด๊ฐ€ ์ฐพ์•„๋ณธ ๋ฐ”๋กœ ์ด 3๊ฐ€์ง€์ด๋‹ค!

์•„ ์šฐ์„  ์™œ ๋„์ปค๋ฅผ ๊ฐ์‹ธ๋ƒ ํ•˜๋ฉด ๋‚˜์ค‘์— ์„œ๋น„์Šค๊ฐ€ ์ปค์กŒ์„ ๋•Œ ๋ชจ๋“  ํ™˜๊ฒฝ์— ๋™์ผํ•œ ๋ฒ„์ „์œผ๋กœ ๋ฐฐํฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ณ  ๋‹ค๋“ค ๋„์ปค๋„์ปค ํ•˜๋‹ˆ๊นŒ ๋‚˜๋„ ๋„์ปค ์ข€ ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋‹ค! ๐Ÿณ

 

 

๊ทธ๋ž˜์„œ ๋ณธ๋ก ์œผ๋กœ ๋“ค์–ด๊ฐ€์„œ CI CDํ•˜๋Š” ๋ฐฉ๋ฒ• ์„ธ๊ฐ€์ง€๋ฅผ ์†Œ๊ฐœํ•˜๊ฒ ๋‹ค.

 

1๏ธโƒฃ Docker+ S3+CodeDeploy+Github actions 

๊ฐ„๋‹จํ•ด ๋งํ•˜๋ฉด ๋นŒ๋“œ ํŒŒ์ผ์ธ jarํŒŒ์ผ์„ ์••์ถ•ํ•ด์„œ ์—…๋กœ๋“œ ํ•œ ๋‹ค์Œ์— CodeDeploy๋ฅผ ํ™œ์šฉํ•ด ๋ฐฐํฌํ•œ๋‹ค.

๊ทธ๋ž˜์„œ ์ธ์ง€ ์ด ๋ฐฉ๋ฒ•์„ ์“ฐ๋ฉด IAM์ด ๋ฌด๋ ค ์„ธ๊ฐœ๋‚˜ ํ•„์š”ํ•˜๋‹ค.

 

IAM ์—ญํ•  2๊ฐœ 

my-ec2-ima-role : EC2์ธ์Šคํ„ด์Šค์—์„œ S3์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ถŒํ•œ์„ ์ค€๋‹ค (AmazonS3FullAccess)

my-codedeploy-iam : CodeDeploy IAM์ด๋‹ค (AwsCodeDeployRole)

 

IAM ์‚ฌ์šฉ์ž 1๊ฐœ

my-github-actions-iam-user : Github Actions์—์„œ ์‚ฌ์šฉํ•  IAM์‚ฌ์šฉ์ž

 

์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์€๊ธ€ ๋ชฉ๋ก

 

https://bcp0109.tistory.com/363

 

Github Actions CD: AWS EC2 ์— Spring Boot ๋ฐฐํฌํ•˜๊ธฐ

Overview ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋ฉด ์™ธ๋ถ€์—์„œ๋„ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋„๋ก ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ์ด์ „์— ํฌ์ŠคํŒ… ํ–ˆ๋˜ AWS 1ํŽธ์—์„œ๋Š” ๋งˆ์ง€๋ง‰์— scp ๋ช…๋ น์–ด๋กœ ๋กœ์ปฌ์— ์กด์žฌํ•˜๋Š” ๋นŒ๋“œ ํŒŒ์ผ์„ EC2 ์ธ์Šคํ„ด์Šค

bcp0109.tistory.com

 

https://velog.io/@cothis/aws-ec2-S3-code-deploy-docker-%EB%B0%B0%ED%8F%AC-%EC%82%BD%EC%A7%88%EA%B8%B0

 

aws ec2 + S3 + code deploy + docker ๋ฐฐํฌ ์‚ฝ์งˆ๊ธฐ

credential ์„ค์ • ec2 IAM role ์„ค์ • ec2 code deploy agent ์„ค์ • s3 ์ƒ์„ฑ code deploy ๋ฐฐํฌ ๊ทธ๋ฃน ์„ค์ • workflow ์ž‘์„ฑ appspec.yml ์ž‘์„ฑ Dockerfile ์ž‘์„ฑ docker-compose.yml ํŒŒ์ผ ์ž‘์„ฑ af

velog.io

https://velog.io/@vector13/Springboot-ํ”„๋กœ์ ํŠธ-Github-Action์„-์ด์šฉํ•ด์„œ-๋ฐฐํฌ-์ž๋™ํ™”ํ•˜๊ธฐ

 

Springboot ํ”„๋กœ์ ํŠธ Github Action์„ ์ด์šฉํ•ด์„œ ๋ฐฐํฌ ์ž๋™ํ™”ํ•˜๊ธฐ

###๐Ÿ”ฅ ์ฃผ์˜ ๐Ÿ”ฅ ํ•ด๋‹น ๊ธ€์€ ์—๋Ÿฌ์™€ ์‹คํŒจ ๊ณผ์ •์„ ๋ชจ๋‘ ํฌํ•จํ•œ ๊ธ€์ด๋ฏ€๋กœ ๋งŒ์ผ ๋”ฐ๋ผํ•˜์‹ค ๋•Œ๋Š” ๋‹ค ์ฝ์œผ์‹œ๊ณ  ๆญฃ้“๋งŒ ๊ฑธ์œผ์‹œ๋ผ๋Š” ๋œป..... ์ฐธ๊ณ  ๋ธ”๋กœ๊ทธ (์ฒ˜์Œ์— ๋”ฐ๋ผํ•  ๋•Œ ) https://stalker5217.netlify.app/devops/git

velog.io

https://taesan94.tistory.com/273

 

CodeDeploy ์ ์šฉ๊ธฐ

Why? ์ฒ˜์Œ ํ”„๋ŸฐํŠธํŒ€๊ณผ ํ˜‘์—…์„ ํ•˜๊ธฐ ์ „ ์™„๋ฃŒ๋œ API๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ์™„๋ฃŒ๋œ API๋ฅผ ํ”„๋ก ํŠธ์—์„œ๋„ ๋ฐ”๋กœ ํ˜ธ์ถœํ•ด๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉด ๋ฌธ์ œ๋„ ๋” ๋นจ๋ฆฌ ์žก์„ ์ˆ˜ ์žˆ๊ณ , ์„œ๋กœ ์ƒ์‚ฐ์„ฑ๋„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค๊ณ 

taesan94.tistory.com

 

 

2๏ธโƒฃ Docker + ec2 + Github Actions

 

์šฐ์„  ec2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค์Œ ec2์•ˆ์— ๋„์ปค ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด์ค€๋‹ค.

๋‚ด ์Šคํ”„๋ง๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ๋„์ปค๋กœ ํ•œ๋ฒˆ ๊ฐ์‹ธ์ค€๋‹ค. 

๊นƒํ—™์•ก์…˜์„ ํ†ตํ•ด ec2์— ๋‚ด ํ”„๋กœ์ ํŠธ์˜ ๋„์ปค์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์™€์„œ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋นŒ๋“œํ•˜๋Š” ํ˜•์‹์ด๋‹ค. 

 

์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์€๊ธ€ ๋ชฉ๋ก

https://velog.io/@julia/Django-Docker๋„์ปค-Github-Actions๊นƒํ—™์•ก์…˜-๋ฐฐํฌ

 

Django - Docker(๋„์ปค) & Github Actions(๊นƒํ—™์•ก์…˜) ๋ฐฐํฌ

๐ŸณDjango๋ฅผ Docker & Github Actions ๋กœ ๋ฐฐํฌํ•ด๋ด…์‹œ๋‹ค๐Ÿณ

velog.io

https://itcoin.tistory.com/685

 

Github actions๋ฅผ ์ด์šฉํ•œ CICD - 2

์ง€๋‚œ ๊นƒํ—™์•ก์…˜ ํฌ์ŠคํŒ…์—์„œ ๊นƒํ—™์•ก์…˜์„ ์ด์šฉํ•ด ๋นŒ๋“œ ์ž๋™ํ™”๋ฅผ ๋งˆ์ณค์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐฐํฌ ์ค€๋น„๋ฅผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์–ด๋””์—์„œ ๋™์ผํ•œ ํ™˜๊ฒฝ์˜ ๋ฐฐํฌ๋ฅผ ํ• 

itcoin.tistory.com

https://velog.io/@max-sum/Docker-Container-RDS-EC2

 

Docker โŽฎ Container + RDS ์กฐํ•ฉ EC2 ๋ฐฐํฌ

Docker! ์‰ฝ์ง€์•Š์•„!!

velog.io

 

3๏ธโƒฃ ๋Œ€๋ง์˜ Docker + Elastic Beanstalk +Github actions

 

2๋ฒˆ์ด๋ž‘ ๋‹ฌ๋ผ์ง„๊ฒŒ ๊ฑฐ์˜ ์—†๋‹ค. ec2 ์ž๋ฆฌ์— EB๊ฐ€ ์˜จ๊ฑฐ๊ณ  EB์•ˆ์—์„œ ์ž๋™์œผ๋กœ ec2,S3 ๋“ฑ๋“ฑ์ด ๊ตฌ์ถ•๋œ๋‹ค!

 

 

https://taetoungs-branch.tistory.com/m/202

 

[CI/CD] Docker์™€ Elastic Beanstalk๋ฅผ ์‚ฌ์šฉํ•œ spring boot ํ”„๋กœ์ ํŠธ CI/CD ์ž๋™ํ™” ๋ฐฐํฌ2 (์‹ค์Šต๋‚ด์šฉ)

ํ‹€๋ฆฐ ๋‚ด์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์–ด์š”๐Ÿฅฒ ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ๐Ÿ› ๏ธ ์‚ฌ์šฉ ๊ธฐ์ˆ  spring boot gradle github action docker AWS Elastic Beanstalk AWS ๊ฐœ๋ฐœ์ž ์•ˆ๋‚ด์„œ์— ์ œ๊ณต๋œ ๋‚ด์šฉ์„ ํ™•์ธ

taetoungs-branch.tistory.com

 

์ด ๊ธ€์„ ๋ณด๊ณ  ๋”ฐ๋ผํ•˜๋ฉด ์ข‹๋‹ค!

 

Step 1 ) ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๊ตฝ์ž!

 

https://umanking.github.io/2021/07/11/spring-boot-docker-starter/

 

Spring Boot, Dockerfile๋กœ ์ด๋ฏธ์ง€ ์ƒ์„ฑ, ๋ฐฐํฌํ•˜๊ธฐ

SpringBootํ”„๋กœ์ ํŠธ, Dockerfile์„ ๋งŒ๋“ค์–ด์„œ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ฐฐํฌํ•ด๋ณด์ž!

umanking.github.io

์ด ๊ธ€์„ ๋ณด๋ฉฐ ๋”ฐ๋ผํ•˜๋ฉด์„œ ์ด๋ฏธ์ง€๋ฅผ ๊ตฝ๋Š”๋‹ค.

์•„ ๊ทธ๋ฆฌ๊ณ  ์ด๋ฏธ์ง€๋ฅผ build -t ํ•˜๊ธฐ ์ „์— ๊ผญ jar ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์•ผํ•œ๋‹ค.

https://velog.io/@ryusuz/Spring-boot-jar-ํŒŒ์ผ-์ƒ์„ฑํ•˜๊ธฐ-feat.-Gradle

 

[ Spring Boot ] jar ํŒŒ์ผ ์ƒ์„ฑ ๋ฐ ์‹คํ–‰ํ•˜๊ธฐ (feat. Gradle)

๊นŒ๋จน๊ณ  ๋˜ ์ฐพ์•„๋ณผ๊นŒ๋ด ์ ์–ด๋†“๋Š” ๊ธ€.. ์•„์ฃผ ๊ฐ„๋‹จํ•ด์„œ ๊ธ€๋„ ์งง๋‹ค.๊ตฌ๊ธ€๋ง์„ ํ•ด๋ณด๋‹ˆ ๊ทธ๋ƒฅ ๋นŒ๋“œ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ž๋™์œผ๋กœ build ํด๋” ๋ฐ‘์— libs ํด๋”๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด์„œ ํ•˜์œ„์— jar ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค๋Š”๋ฐ...๋‚œ ์•ˆ

velog.io

 

 

์ž˜ ๋งŒ๋“ค์–ด์ง€๋ฉด ์ด๋Ÿฐ์‹์ด ๋œ๋‹ค. ๊ผญ ๋กœ์ปฌ์—์„œ docker run์„ ํ•ด๋ณด์ž!

๊ทธ๋ฆฌ๊ณ  ์—˜๋ผ์Šคํ‹ฑ+docker ๊ด€๋ จ ๊ธ€๋“ค์—์„œ application.yml์— server๋ฅผ 5000ํฌํŠธ๋กœ ์—ด์–ด์ฃผ๋ผ ํ•˜๋Š”๋ฐ

์™œ๋ƒ๋ฉด ์—˜๋ผ์Šคํ‹ฑ์ด ํ”„๋ก์‹œ๋กœ nginx๋กœ ์—ฐ๊ฒฐ๋˜๋Š”๋ฐ ๊ทธ nginix ํฌํŠธ๊ฐ€ 5000์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฑด Dockerrun.aws.json์ด๋‚˜ docker-compose์—์„œ ๋‹ค์‹œ ํฌํŠธ ์„ค์ •ํ•ด์ค„ ๊ฑฐ๋ผ์„œ ๊ฑฑ์ • ์•ˆํ•ด๋„ ๋œ๋‹ค!

 

jib

์ด๊ฑด ์ž๋ฐ” ํ™˜๊ฒฝ์—์„œ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์• ์ธ๋ฐ plugin ์„ค์ •์„ ํ•ด๋ดค์ง€๋งŒ ์™œ์ธ์ง€ ์ž˜ ์•ˆ๋๋‹ค.

https://medium.com/@gaemi/spring-boot-๊ณผ-docker-with-jib-657d32a6b1f0

 

Spring Boot ๊ณผ Docker (with jib)

์ด ๊ธ€์€ Spring Boot ๊ธฐ๋ฐ˜์˜ Application ์„ Docker ์ด๋ฏธ์ง€๋กœ ๋ฐฐํฌํ•˜๋Š” ๊ณผ์ •์„ jib ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„์†Œํ™”ํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด์„œ ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

medium.com

 

 

Step2) ์—˜๋ผ์Šคํ‹ฑ ๋นˆ ์Šคํ†ก ํ™˜๊ฒฝ ์„ค์ •์„ ํ•˜์ž

 

https://browndwarf.tistory.com/66

 

Elastic Beanstalk - (1) Java Jar ํŒŒ์ผ์„ ํ†ตํ•œ Web Application Deploy

Spring Boot๋กœ ๊ฐœ๋ฐœํ•œ Application์„ AWS์˜ Elastic Beanstalk์œผ๋กœ ๋ฐฐํฌํ•˜๋Š” ๋‚ด์šฉ์„ ์•„๋ž˜์˜ 3๊ฐœ์˜ ํฌ์ŠคํŒ…์— ๊ฑธ์ณ ์ •๋ฆฌํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. Jar ํŒŒ์ผ์„ ์ด์šฉํ•œ ๋ฐฐํฌ ๋ฐ ๋‚ด๋ถ€ ๊ตฌ์กฐ ์ดํ•ด Tomcat + War ํŒŒ์ผ์„ ์ด์šฉํ•œ ๋ฐฐํฌ

browndwarf.tistory.com

 

์ด ๊ธ€ ๊ทธ๋Œ€๋กœ ํ•˜๋ฉด๋œ๋‹ค.

๋‹ค๋งŒ ํ”Œ๋žซํผ์„ ๋„์ปค๋กœ ํ•ด์ฃผ์„ธ์š”!

ํ™˜๊ฒฝ์ƒ์„ฑํ•˜๊ธฐ ์ „์— ๊ผญ ์ถ”๊ฐ€ ์˜ต์…˜ ๊ตฌ์„ฑ์œผ๋กœ ๊ฐ€์„ธ์š”!

 

Step 3) IAM ์„ค์ •์„ ํ•˜์ž

 

์•„๊นŒ step 2 ๋ธ”๋กœ๊ทธ๋ฅผ ๋ณด๋ฉด IAM ์„ค์ •์„ ํ•˜๋Š”๊ฒŒ ์žˆ๋‹ค. ๋ณด๊ณ  ๋”ฐ๋ผํ•˜๋ฉด ๋œ๋‹ค. 

AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY๋ฅผ

๊นƒํ—™ ๋ ˆํฌ Settings-> Secrets->actions์— ๋“ฑ๋กํ•ด์ฃผ๋ฉด ๋œ๋‹ค!

 

Step 4) Docker Hub ๊ณ„์ • ์ƒ์„ฑ ๋ฐ Secrets์— ๋“ฑ๋กํ•˜๊ธฐ

 DOCKERHUB_USERNAME, DOCKERHUB_TOKEN ์„ ๊นƒํ—™ ๋ ˆํฌ Settings-> Secrets->actions

์— ๋“ฑ๋กํ•ด์ค€๋‹ค. username์ด ์•„์ด๋”” token์ด ๋น„๋ฒˆ์ด๋‹ค. 

 

Step 5) Github Action ์‚ฌ์šฉ์„ ์œ„ํ•œ gradle.yml ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ธฐ

 

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle

name: Java CI with Gradle

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

permissions:
  contents: read

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
      - name: Set up JDK 11
        uses: actions/setup-java@v2
        with:
          java-version: '11'
          distribution: 'adopt'

        ### Gradle ###
      - name: Run chmod to make gradlew executable
        run: chmod +x gradlew

      - name: Build with Gradle
        run: ./gradlew build

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

      - name: Show Current Time
        run: echo "CurrentTime=${{steps.current-time.outputs.formattedTime}}"
        shell: bash


      - name: Docker build
        run: |
          docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }}
          docker build -t docker-jungmin .
          docker tag docker-jungmin jungminleeee/docker-jungmin:latest
          docker push jungminleeee/docker-jungmin:latest
        # Beanstalk ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉ
        # ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•ด๋‘” IAM ์ธ์ฆํ‚ค๋ฅผ ์‚ฌ์šฉ
      - name: Deploy to EB
        uses: einaregilsson/beanstalk-deploy@v21
        with:
          aws_access_key: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws_secret_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          application_name: jungminExercise
          environment_name: Jungminexercise-env
          version_label: github-action-${{steps.current-time.outputs.formattedTime}}
          region: ap-northeast-2
          deployment_package: docker-compose.yml
          use_existing_version_if_available: true

 


Step 6)
Dockerrun.aws.json ํŒŒ์ผ ์ž‘์„ฑํ•˜๊ธฐ

 

https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/single-container-docker-configuration.html

 

Docker ๊ตฌ์„ฑ - AWS Elastic Beanstalk

๋‘ ํŒŒ์ผ์€ ๋ฃจํŠธ์— ์žˆ๊ฑฐ๋‚˜, .zip ์•„์นด์ด๋ธŒ์˜ ์ตœ์ƒ์œ„์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ํฌํ•จํ•˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์•„์นด์ด๋ธŒ๋ฅผ ๋นŒ๋“œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•œ ํ›„ ์•„์นด์ด๋ธŒ๋ฅผ ๋นŒ๋“œํ•˜์‹ญ์‹œ์˜ค. ๋‘ ํŒŒ

docs.aws.amazon.com

๊ณตํ™ˆ์— ๊ฐ€๋ณด๋ฉด docker-compose๋ฅผ ์•ˆ์“ฐ๋ฉด Dockerrun.aws.json์„ ์จ์ฃผ๋ฉด ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.

๊ทผ๋ฐ ๋‚œ ๋ถˆ์•ˆํ•ด์„œ ๋‘˜ ๋‹ค ์จ์คฌ๋‹ค ใ…Žใ…‹ใ…Žใ…‹

 

Dockerrun.aws.json

version: "3"
services:
  backend:
    image: "jungminleeee/docker-jungmin:latest"
    ports:
      - "8080:5000"
    restart: "always"

 

docker-compose.yml

{
  "AWSEBDockerrunVersion": "1",
  "Image": {
    "Name": "jungminleeee/docker-jungmin:latest",
    "Update": "true"
  },
  "Ports": [
    {
      "ContainerPort": 8080,
      "HostPort": 5000
    }
  ]
}

 

 

 

์ด๊ฑธ ์ ์šฉํ•˜๋Š” ๋ถ€๋ถ„์€

 

EB ์„ค์ •์ชฝ์— deployment_package๊ฐ€ ๋œ๋‹ค!

728x90