โญ Personal_Study/DevOps9 Springboot Dockerfile & docker-compose.yml Springboot Dockerfile & docker-compose.yml ๋ฐฐํฌ ๊ณผ์ ์ ๋ํ ์์ธํ ์ค๋ช ์ ์ด์ ๊ธ ์ฐธ๊ณ ! https://bluuubery.tistory.com/206 ๋ณธ ๊ธ์ dockerfile๊ณผ docker-compose.yml ํ์ผ๊ณผ ์ค๋ช ๋ง ์ ์๋ค. Dockerfile # ์คํ ์ด์ง 1 (๋น๋) # ๋ฒ ์ด์ค ์ด๋ฏธ์ง: jdk 11 alpine(๊ฒฝ๋) FROM adoptopenjdk/openjdk11:jdk-11.0.10_9-alpine AS builder # ์์ ๊ฒฝ๋ก ์ค์ ๋ฐ ํ๋ก์ ํธ ๊ฐ์ ธ์ค๊ธฐ WORKDIR /app COPY . . # ๋น๋ ๊ถํ ๋ถ์ฌ ๋ฐ ์คํ(ํด๋ฆฐ) RUN chmod +x ./gradlew RUN ./gradlew clean bootJar # ์คํ ์ด์ง 2 # ๋ฒ ์ด์ค .. 2023. 3. 21. ./gradlew not found error ํด๊ฒฐํ๊ธฐ ์๋ฌ: ./gradelw not found error ๋ฌธ์ ๋์ปค๋ก springboot ํ๋ก์ ํธ ๋น๋ ์ค์ ๋ฐ์ํ ์๋ฌ ./gradlew ํ์ผ์ด ๋ถ๋ช ํ ์๋๋ฐ ์๋ค๊ณ ํ๋ค ์์ธ โ ์์ธ์ ์๋์ฐ์ ๋ฆฌ๋ ์ค์ ๊ฐํ๋ฐฉ์์ ์ฐจ์ด๋ค ์๋์ฐ์ ๊ฒฝ์ฐ CRLF(\r\n)์ ์ฐ๊ณ ๋ฆฌ๋ ์ค์ ๊ฒฝ์ฐ LF(\n)์ ์ฐ๊ธฐ ๋๋ฌธ์ ์๋์ฐ์์ ์์ฑํ ํ์ผ์ด ๋ฆฌ๋ ์ค์์ ์ ๋๋ก ์ธ์์ด ์๋๊ฑฐ๋ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ๋ฐ์ํ๊ฒ ๋๋ค. ์์ ์ฌ๋ก ์ญ์ ์๋์ฐ ํ๊ฒฝ์์ ์์ฑ๋ ํ์ผ์ ๋ฆฌ๋ ์ค ํ๊ฒฝ์์ ๋์๊ฐ๋ docker์์ ์ฝ์ง ๋ชปํด์ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ด๋ค. ํด๊ฒฐ โ ๊ฐํ์ ๋ฆฌ๋ ์ค ๋ฐฉ์์ผ๋ก ๋ฐ๊ฟ์ฃผ๋ฉด๋๋ค. dos2unix ๋ผ๋ ํจํค์ง๋ฅผ ํ์ฉํ๋ฉด ๊ฐํธํ๋ค # choco๋ ์๋์ฐ์์ ์ฐ์ด๋ ํจํค์ง ๊ด๋ฆฌ์(chocolatey)์ ๋ช ๋ น์ด๋ค # ๋ณธ์ธ ํ๊ฒฝ์.. 2023. 3. 20. Docker์ Nginx๋ฅผ ํ์ฉํด react ํ๋ก์ ํธ ec2์ ๋ฐฐํฌ ๋ฐ jenkins๋ฅผ ํ์ฉํ CI/CD ๊ตฌ์ถ + docker compose ํ์ฉ - 3(์ ํจ์ค์ ๊น๋ฉ ์ฐ๊ฒฐ ๋ฐ ci/cd ์ค์ ) jenkins์ gitlab ์ฐ๊ฒฐํด์ฃผ๊ธฐ docker, docker-compose, nginx, jenkins, react, ec2 ๋ฐฐํฌ 1. ๋ฐฐํฌ ํ๋ฆ ์์ฝ ๋ฐ q&a 2. ๋ฐฐํฌ ํ๋ก์ ํธ docker ๋ฐ nginx ํ์ผ ์ค์ 3. ์ ํจ์ค์ ๊น๋ฉ ์ฐ๊ฒฐ ๋ฐ ci/cd ์ค์ 1. ์ ํจ์ค ์ค์น ๋จผ์ ๋ค์ ๊ธ์ ์ฐธ๊ณ ํด์ ๋์ปค์ธ ๋์ปค๊ฐ ์ ์ฉ๋ ์ ํจ์ค๋ฅผ ec2 ์๋ฒ ๋ด๋ถ์ ์ค์นํด์ฃผ์ Docker in Docker๋ฅผ ์ ์ฉํ Jenkins ์ค์นํ๊ธฐ โ ์ ๋์ปค๋ฅผ ํตํด ์ค์นํ ์ ํจ์ค์ ๋ ๋์ปค๋ฅผ ์ค์นํ ๊น? ๋จผ์ ๋์ปค๋ฅผ ์ฌ์ฉํด ์ ํจ์ค๋ฅผ image&conatainerํ ํด์ ec2 ์๋ฒ์ ์ค์นํด๋๋ค. ์ค์น๋ ์ ํจ์ค๋ ์ฐ๊ฒฐ๋ ํ๋ก์ ํธ(๋ณธ ๊ธ์์๋ frontend)์ ๋ํ ci/cd๋ฅผ ๋งก๊ฒ ๋๋๋ฐ, ๋น๋/๋ฐฐํฌํ๋ ๊ณผ์ ์์ ๋์ปค๋ฅผ.. 2023. 3. 18. Docker์ Nginx๋ฅผ ํ์ฉํด react ํ๋ก์ ํธ ec2์ ๋ฐฐํฌ ๋ฐ jenkins๋ฅผ ํ์ฉํ CI/CD ๊ตฌ์ถ + docker compose ํ์ฉ - 2(docker ๋ฐ nginx ์ค์ ) docker ๋ฐ nginx ์์ ๊ณผ์ ๋ฐ ์ค๋ช docker, docker-compose, nginx, jenkins, react, ec2 ๋ฐฐํฌ 1. ๋ฐฐํฌ ํ๋ฆ ์์ฝ ๋ฐ q&a 2. ๋ฐฐํฌ ํ๋ก์ ํธ docker ๋ฐ nginx ํ์ผ ์ค์ 3. ์ ํจ์ค์ ๊น๋ฉ ์ฐ๊ฒฐ ๋ฐ ci/cd ์ค์ 1. ๋์ปค ํ์ผ ์์ฑ ํ๋ก์ ํธ ์ต์๋จ ๋๋ ํ ๋ฆฌ์ ๋ค์๊ณผ ๊ฐ์ด Dockerfile์ ์์ฑํด์ฃผ์ # Dockerfile # ์คํ ์ด์ง 1 # ๋ฒ ์ด์ค ์ด๋ฏธ์ง: ๋ ธ๋ (alpine: ๊ฒฝ๋ ๋ฒ์ , builder: stage) FROM node:18.12.1-alpine as builder # ์์ ๊ฒฝ๋ก ์ค์ WORKDIR "/app" # ์์กด์ฑ ์ค์น COPY package.json yarn.lock ./ RUN yarn install --pr.. 2023. 3. 17. Docker์ Nginx๋ฅผ ํ์ฉํด react ํ๋ก์ ํธ ec2์ ๋ฐฐํฌ ๋ฐ jenkins๋ฅผ ํ์ฉํ CI/CD ๊ตฌ์ถ + docker compose ํ์ฉ - 1(๋ฐฐํฌ ํ๋ฆ ์์ฝ ๋ฐ q&a) ๋ฐฐํฌ ํ๋ฆ ์์ฝ ๋ฐ q&a docker, docker-compose, nginx, jenkins, react, ec2 ๋ฐฐํฌ 1. ๋ฐฐํฌ ํ๋ฆ ์์ฝ ๋ฐ q&a 2. ๋ฐฐํฌ ํ๋ก์ ํธ docker ๋ฐ nginx ํ์ผ ์ค์ 3. ์ ํจ์ค์ ๊น๋ฉ ์ฐ๊ฒฐ ๋ฐ ci/cd ์ค์ react๋ก ๋ง๋ ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํด๋ณด์. ๋ฐฐํฌ ํ๋ฆ ์์ฝ ๋ฐฐํฌ์๋ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ์์ด ์๋๋ฐ ๋ณธ ๊ธ์์ ์๊ฐํ ๋ฐฐํฌ ๋ฐฉ์์ ํ๋ฆ์ ๋๋ต ๋ค์๊ณผ ๊ฐ๋ค. ec2 ์๋ฒ์ docker in docker๋ฅผ ์ ์ฉํ jenkins ์ปจํ ์ด๋๋ฅผ ๋์ด๋ค. jenkins๋ฅผ ๋ฐฐํฌํ ํ๋ก์ ํธ๊ฐ ์๋ ๋ ํฌ์งํ ๋ฆฌ(์ ๋ธ๋์น)์ ์ฐ๊ฒฐํ๋ค. ํด๋น ๋ธ๋์น์ ํน์ ์ด๋ฒคํธ(ํธ์ฌ, ๋จธ์ง ๋ฑ)์ด ๋ฐ์ํ๋ฉด jenkins๋ ์ค์ ํ shell script๋ฅผ ์คํํ๋ค. shell script๋ฅผ ํตํด .. 2023. 3. 16. Jenkins์๊ฒ docker-compose ๊ถํ ์ฃผ๊ธฐ ๊ฒฝ๋ก์ docker-compose๊ฐ ์กด์ฌํ๋๋ฐ ๊ถํ์ด ์๋ค๊ณ ์๋์ด ์๋๋ ๋๊ฐํ ์ํฉ. docker ๊ถํ์ ์ฒ์ ์ปจํ ์ด๋๋ฅผ ๋์ธ ๋น์ ์คฌ๋๋ฐ docker-compose์๋ ์ ์ฉ๋์ง ์๋ ๋ชจ์์ด๋ค. ๊ถํ์ด ์๋ค๊ณ (Permission denied) ํ๋ ์ฃผ๋ฉด ํด๊ฒฐ๋๋ค. 1. ์ฐ์ ์ ํจ์ค ๋ด๋ถ ์ปจํ ์ด๋์ ์ ์ (๋ฐฐํฌ ํ๊ฒฝ๋ง๋ค ๋ค๋ฅด๋ค. ๋ณธ ํ๋ก์ ํธ ๊ฐ์ ๊ฒฝ์ฐ๋ ๋์ปค์ธ๋์ปค ํ์ฉ) docker exec -it jenkins /bin/bash 2. ๋ค์ ๋ช ๋ น์ด๋ฅผ ํตํด ๋์ปค-์ปดํฌ์ฆ ๊ถํ์ ์ค๋ค. chmod +x /usr/local/bin/docker-compose; # ๋์ปค ์ปดํฌ์ฆ์ ๋ํ ์คํ๊ถํ ๋ถ์ฌ 3. ์ถ๊ฐ์ ์ผ๋ก docker ๊ทธ๋ฃน์์ ๊ฐ์ด ๊ด๋ฆฌํ๊ณ ์ ํ ๊ฒฝ์ฐ์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ํตํด docker-compose.. 2023. 3. 15. ์ด์ 1 2 ๋ค์