Commit 02eca8e3 authored by JooHan Hong's avatar JooHan Hong

k8s ci_cd init

parent c76a5a9a
Pipeline #5256 passed with stages
in 47 seconds
This diff is collapsed.
......@@ -25,9 +25,9 @@ Runner는 yaml을 파일을 수행한다. 특정 프로젝트에 국한되거나
> 사전에 devel 브랜치로 checkout을 수행한다.
- **STEP 2** : STAG 시스템에서 검증이 완료되면, 다음과 같이 두 가지 Stage가 수행된다.
- First : **push** stag는 GitLAB의 Container Registry에 Container Image를 PUSH 한다.
- Second : **deploy** stag는 Docker Swarm Manager 서버에 Image 배포를 명령한다. 단, 모든 WORKER Node가 한 번에 업데이트되는 것이 아니라 한 대씩(**--update-parallelism 1**) 업데이트를 수행하게 된다.
- **STEP 2** : STAG 시스템에서 검증이 완료되면, 다음과 같이 두 개의 Stage가 수행된다.
- **push** : GitLAB의 Container Registry에 Container Image를 PUSH 한다.
- **deploy** : Docker Swarm Manager 서버에 Image 배포를 명령한다. 단, 모든 WORKER Node가 한 번에 업데이트되는 것이 아니라 한 대씩(**--update-parallelism 1**) 업데이트를 수행하게 된다.
## www.hongsnet.net **Dockerfile**
......@@ -110,6 +110,7 @@ variables:
GIT_SSL_NO_VERIFY: "1"
GITLAB_TOKEN: "XXXXXX"
BUILD_IMAGE: ${CI_PROJECT_DIR}/hongsnet
BUILD_SHA: ${CI_COMMIT_SHA}
before_script:
#- export RELEASE_DATE=`date +"%Y%m%d"`
......@@ -120,7 +121,7 @@ push:
- deploy
script:
- docker login -u juhanida21@nate.com -p $GITLAB_TOKEN registry.hongsnet.net
- /usr/bin/docker tag hongsnet-dev:init registry.hongsnet.net/joohan.hong/docker/hongsnet:latest
- /usr/bin/docker tag hongsnet-dev:$BUILD_SHA registry.hongsnet.net/joohan.hong/docker/hongsnet:latest
- /usr/bin/docker push registry.hongsnet.net/joohan.hong/docker/hongsnet:latest
tags:
- deploy
......@@ -142,10 +143,10 @@ build:
script:
- cd /DATA/DOCKERS/hongsnet-dev; docker-compose down
- cd ${BUILD_IMAGE}
- docker build --rm -t hongsnet-dev:${CI_COMMIT_SHA} .
- docker build --rm -t hongsnet-dev:$BUILD_SHA .
- (if [[ `docker images -f "dangling=true" -q` != "" ]]; then docker rmi $(docker images -f "dangling=true" -q); fi);
- (rm -rf /DATA/DOCKERS/hongsnet-dev/docker-compose.yml; cp -rf /DATA/DOCKERS/hongsnet-dev/docker-compose.yml_init /DATA/DOCKERS/hongsnet-dev/docker-compose.yml);
- (sed 's/init/${CI_COMMIT_SHA}/g' -i /DATA/DOCKERS/hongsnet-dev/docker-compose.yml);
- (sed 's/init/$BUILD_SHA/g' -i /DATA/DOCKERS/hongsnet-dev/docker-compose.yml);
- cd /DATA/DOCKERS/hongsnet-dev; docker-compose up -d
tags:
- devel
......@@ -175,13 +176,13 @@ docker service update --image registry.hongsnet.net/joohan.hong/docker/hongsnet:
> Working...
컨테이너 이미지 생성 시 **Git의 Commit SHA 값으로 컨테이너의 Tagging을 지정**한다.
컨테이너 이미지 생성 시 **Git의 Commit SHA(BUILD_SHA 변수) 값으로 컨테이너의 Tagging을 지정**한다.
```python
(rm -rf /DATA/DOCKERS/hongsnet-dev/docker-compose.yml; cp -rf /DATA/DOCKERS/hongsnet-dev/docker-compose.yml_init /DATA/DOCKERS/hongsnet-dev/docker-compose.yml);
```
**docker-compose.yml** 파일내역은 다음과 같다.
수행된 **docker-compose.yml** 파일내역은 다음과 같다.
```bash
# cat docker-compose.yml_init
......@@ -191,12 +192,7 @@ services:
image: hongsnet-dev:init
hostname: 'dev.hongsnet.net'
volumes:
- "/DATA/SERVICE/passwd:/etc/passwd"
- "/DATA/SERVICE/group:/etc/group"
- "/DATA/SERVICE/shadow:/etc/shadow"
- "/DATA/SERVICE:/home"
- "/DATA/SERVICE/logs:/usr/local/apache/logs"
- "/DATA/DOCKERS/hongsnet-dev/ssl:/etc/letsencrypt"
- "/WEB_DATA/EDU/Data:/home/edu/public_html/HongsBoard/Data"
- "/WEB_DATA/EDU/Web_editor/EDU:/home/edu/public_html/HongsBoard/Web_editor/EDU"
- "/WEB_DATA/EDU/Web_editor/FILE:/home/edu/public_html/HongsBoard/Web_editor/FILE"
......@@ -209,13 +205,13 @@ services:
```
**!참고**
.gitlab-ci.yml 파일에 정의된 내역을 보면 다음과 같이 **Git Commit SHA 값**으로 변경하는 명령이 존재한다.
.gitlab-ci.yml 파일에 정의된 내역을 보면 다음과 같이 **Git Commit SHA(BUILD_SHA) 값**으로 변경하는 명령이 존재한다.
```python
- (sed 's/init/${CI_COMMIT_SHA}/g' -i /DATA/DOCKERS/hongsnet-dev/docker-compose.yml);
- (sed 's/init/$BUILD_SHA/g' -i /DATA/DOCKERS/hongsnet-dev/docker-compose.yml);
```
이는 `Commit 된 SHA 값`을 향후 **참조하기 위한 용도**로 사용된다.
이는 `Commit 된 SHA(BUILD_SHA) 값`을 향후 **참조하기 위한 용도**로 사용된다.
![container_dev](./images/gitlab_ci_cd_container.png)
......@@ -240,7 +236,7 @@ Switched to branch 'deploy'
```
**!중요**
Stag 과정 중에 Commit 된 ${CI_COMMIT_SHA} 변수를 /root/release_image 파일에 업데이트함으로써 증적을 기록한다.
Stag 과정 중에 Commit 된 $BUILD_SHA 변수를 /root/release_image 파일에 업데이트함으로써 증적을 기록한다.
```bash
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment