์ค์ ๊ธฐ๋ฐ์ ๊ด๊ณ ๋น ์ ์ฝ๊ณผ ์๋น์์ ์๋น์ค๋ฅผ ์ง์คํด์ ๋ง๋ ์ฌ์ ์ ๋๋ค. ์๋๋ค์ด ์ด๋ ์์์ ์ ๊ฐ๋ ํ ์ธ์ด๋ ์๋น์ค๋ฅผ ๋ฐ์ ์ ์๊ฒ ํ๊ณ ์ฌ์ฅ๋๋ค์ ๊ด๊ณ ์ ์ฝ, ์์ ๋ญ๋น ๋ฐฉ์ง๋ฑ ์๋ก ์๋ก win win ์ฌ์ ์ด์์ต๋๋ค. (์ฌ์ด ์ค๋ช ์ผ๋ก ์นดํ์์ ๋ง์ผ๋ฆฌ์ง๋ฅผ ์ ๋ฆฝํ๊ณ ๋์ค์ ๋ง์ผ๋ฆฌ์ง๋ฅผ ๋ค ๋ชจ์ผ๋ฉด ์ปคํผ๋ฅผ 1์ ๋จน๋๊ฑฐ๋ ๋น์ทํ๋ค๊ณ ๋ณด๋ฉด๋ฉ๋๋ค. ๊ทธ ๋ถ๋ถ์ ํตํฉ์ ์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค.
์์ธํ ์ฌํญ์ ๋ ธ์ ์ ์๋ ์ฌ์ ๊ณํ์๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์!
- ์ผ๋ฐ ํ์ ํ์๊ฐ์ ๋ฐ ๋ก๊ทธ์ธ
- ์ผ๋ฐ ํ์์ ๋ณด ์์
- ๊ฐํธ ๋ก๊ทธ์ธ(๋ค์ด๋ฒ, ์นด์นด์ค)
- ๋ง์ดํ์ด์ง(ํ์์ ๋ณด ์์ , ์ฃผ๋ฌธ๋ด์ญ, ์ฃผ๋ฌธ์ ๋ณด, ๋ฆฌ๋ทฐ๋ณด๊ธฐ)
- ๋ฆฌ๋ทฐ ๋ฑ๋ก
- ์ฟ ํฐ ์ฃผ๋ฌธ
- ์ ์ฒด ์ ๋ณด ๋ฆฌ์คํ (๋ฑ๊ธ์ or ๋ณ์ ์ or ๋ฑ๋ก์)
- ์ ์ฒด ์์ธ ๋ณด๊ธฐ
- Spring Boot : 2.6.3
- OpenJdk : 11.0.1
- gradle : 7.3.3
- docker : 20.10.7
- docker-compose : 2.2.3
- Ubuntu : 18.0.4
- mysql ์ธํ ๋ฐฉ๋ฒ : docker-compose.yml ํ์ผ
version: '2'
services:
db:
image: mysql:latest
container_name: lossleader-mysql
ports:
- "3306:3306"
environment:
- MYSQL_DATABASE=lossleader
- MYSQL_ROOT_PASSWORD=lossleaderBack12!
- TZ=Asia/Seoul
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
- ./lossleader-mysql/origin-data:/var/lib/mysql
- mysql ์ ๊ทผ ๋ฐฉ๋ฒ
create user 'lossleaderback'@'%' identified by 'lossleaderBack12!';
grant all privileges on lossleader.* to 'lossleaderback'@'%' with grant option;
- minio ์ธํ ๋ฐฉ๋ฒ : docker-compose.yml ํ์ผ
version: '2'
services:
minio:
image: minio/minio:RELEASE.2021-06-17T00-10-46Z.hotfix.35a0912ff
container_name: myminio
environment:
MINIO_ACCESS_KEY: lossleader
MINIO_SECRET_KEY: lossleader123
volumes:
- ./storage/origin-data:/data
ports:
- "9000:9000"
command: server /data
mc:
image: minio/mc:latest
depends_on:
- minio
entrypoint: >
/bin/sh -c "
/usr/bin/mc config host rm local;
/usr/bin/mc config host add --quiet --api s3v4 local http://myminio:9000/ lossleader lossleader123;
/usr/bin/mc mb --quiet local/store;
/usr/bin/mc mb --quiet local/review;
/usr/bin/mc policy set public local/store;
/usr/bin/mc policy set public local/review;
"
- ์ ํจ์ค ๋น๋ ๋ช ๋ น์ด
- git ์ฐ๊ฒฐ
- ํ๋ก์ ํธ ๋น๋ ๋ช ๋ น์ด
./gradlew clean build -x test -Pprofile=prod
- docker ํ์ผ ๋น๋ ๋ช ๋ น์ด
docker build -t jenkins/lossleader .
- ๊ธฐ์กด ์ปจํ ์ด๋ ์ญ์
docker ps -q --filter "name=jenkins-lossleader" && docker stop jenkins-lossleader && docker rm jenkins-lossleader | true
- ๋์ปค ์ปจํ ์ด๋ ์คํ
docker run -p 8000:8000 -d --name=jenkins-lossleader jenkins/lossleader
- ํ์์๋ ์ด๋ฏธ์ง ์ ๊ฑฐ
docker rmi -f $(docker images -f "dangling=true" -q) || true
*์ฐธ๊ณ
- 3~7์ ๋ช ๋ น์ด๋ Build - Excute shell์ ์์ฑ


