๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

โญ 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.