Runner는 yaml을 파일을 수행한다. 특정 프로젝트에 국한되거나, 여러 프로젝트에서 사용할 수 있도록 제공된다. 여기서 모든 여러 프로젝트에서 사용할 수 있는 Runner를 **Shared Runner**이라고 하며, 특정 프로젝트에 국한되서 사용되는 Runner를 **Specific Runner**라고 한다.
Runner는 yaml을 파일을 수행한다. 특정 프로젝트에 국한되거나, 여러 프로젝트에서 사용할 수 있도록 제공된다. 여기서 모든 여러 프로젝트에서 사용할 수 있는 Runner를 **Shared Runner**이라고 하며, 특정 프로젝트에 국한되서 사용되는 Runner를 **Specific Runner**라고 한다.
홍쓰넷 컨테이너 배포에는 `Specific Runner`를 사용한다.
## Container Deploy Overview (`Deprecated`)
## Container Deploy Overview (`Current`)
-**STEP 1** : STAG 시스템에 먼저 Docker Image를 배포한 후 검증한다.
> 사전에 devel 브랜치로 checkout을 수행한다.
-**STEP 2** : STAG 시스템에서 검증이 완료되면, 다음과 같이 두 가지 Stage가 수행된다.
-Second : **deploy** stag는 Docker Swarm Manager 서버에 Image 배포를 명령한다. 단, 모든 WORKER Node가 한 번에 업데이트되는 것이 아니라 한 대씩(**--update-parallelism 1**) 업데이트를 수행하게 된다.
-**STEP 2** : **STAG** 시스템에서 검증이 완료되면, 다음과 같이 두 가지 Stage가 수행된다.
-**push** : GitLAB의 Container Registry에 Container Image를 PUSH 한다.
-**STEP 3** : **STAG** 시스템에서 Docker Image의 상태를 확인한다.
```bash
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
29bc33723517 hongsnet-dev:d7f4a64cc6098bd61af337e0c822bc53c5ed35b7"/usr/bin/supervisor…" 8 minutes ago Up 8 minutes 0.0.0.0:80->80/tcp hongsnet-dev_hongsnet_1
29bc33723517 hongsnet-dev:2283829f44f6e5b7b17393ff6861553c13170a9d"/usr/bin/supervisor…" 8 minutes ago Up 8 minutes 0.0.0.0:80->80/tcp hongsnet-dev_hongsnet_1
0779415724e2 portainer/portainer-ce:latest "/portainer" 4 weeks ago Up 4 weeks 8000/tcp, 0.0.0.0:9000->9000/tcp portainer
```
...
...
@@ -240,13 +236,13 @@ Switched to branch 'deploy'
```
**!중요**
Stag 과정 중에 Commit 된 ${CI_COMMIT_SHA} 변수를 /root/release_image 파일에 업데이트함으로써 증적을 기록한다.
Stag 과정 중에 Commit 된 $BUILD_SHA_RESULT 변수를 /root/release_image 파일에 업데이트함으로써 증적을 기록한다.
```bash
# cat Dockerfile
...중략
RUN echo"hongsnet, 2020-01-20(d7f4a64cc6098bd61af337e0c822bc53c5ed35b7)"> /root/release_image
RUN echo"hongsnet, 2020-12-20(2283829f44f6e5b7b17393ff6861553c13170a9d)"> /root/release_image
```
이제 add/commit/push를 진행하면 된다.
...
...
@@ -254,127 +250,45 @@ RUN echo "hongsnet, 2020-01-20(d7f4a64cc6098bd61af337e0c822bc53c5ed35b7)" > /roo
-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**) 업데이트를 수행하게 된다.