https://github.com/jangky000/docker-jekins-express
아래 문서는 NCP 서버 기본설정 완료를 전제로 함
참고: https://blog.cosmosfarm.com/archives/248/우분투-18-04-도커-docker-설치-방법/
# 현재 사용가능한 메모리 공간을 확인하기
df -h
/dev/xvda1 48G 4.4G 41G 10% /
# apt 업데이트
sudo apt upadate
sudo apt install apt-transport-https
sudo apt install ca-certificates
sudo apt install curl # 특정한 웹사이트에서 데이터를 다운 받을 때 사용
sudo apt install software-properties-common
### 도커 설치 과정
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 레포지터리 리스트에 추가
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce # 설치
# 도커 설치 시 자동으로 시스템 서비스로 등록 된다.
sudo systemctl status docker
# 아래 명령어로 도커가 정상적으로 실행 중인지 확인할 수 있다.
Dockerfile
생성하기https://programmingsummaries.tistory.com/392
https://velog.io/@koozzi/Docker-Node.js로-이미지를-생성하고-컨테이너-실행해보기
FROM node:14.9.0
MAINTAiNER name <email@naver.com>
RUN mkdir -p /temp
WORKDIR /temp/server
ADD . /temp
RUN npm install
ENV NODE_ENV development
EXPOSE 3000 80
CMD ["npm", "start"]
# 빌드 태그 이름(이미지 이름): example
# 현재 경로(.)에서 빌드 수행
# Dockerfile을 찾아서 example 이름으로 build
sudo docker build -t example .
sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
example latest 289a27587de4 12 seconds ago 158MB
ubuntu 18.04 56def654ec22 7 weeks ago 63.2MB
hello-world latest bf756fb1ae65 10 months ago 13.3kB
docker run -p [호스트 서버의 포트]:[컨테이너포트] example
sudo docker run -p 80:80 example
http://공인ip로 접속 확인
sudo docker build -t 생성할이미지/태그명 .
docker run -d -p 3000:3000 생성한이미지/태그명
-d는 데몬
https://velog.io/@wimes/Jenkins를-이용해-Docker프로젝트-빌드해보기 참조
# 도커 컨테이너 종료
sudo docker rm -f `sudo docker ps -a -q`
# sudo docker pull jenkins -> 안 됨
sudo docker pull jenkins/jenkins:lts
# jenkins는 기본적으로 8080 포트를 사용
# 호스트 서버 /home/jenkins와 젠킨스 컨테이너 /var/jenkins_home를 연결(볼륨 마운팅)
# 호스트 서버 /var/run/docker.sock 파일을 젠킨스 컨테이너 /var/run/docker.sock로 연결
# 이 이유는 젠킨스 컨테이너 안에 express 컨테이너를 실행할 것이기 때문
# root 계정으로 jenkins/jenkins 구동
# 이거 안됨 # sudo docker run -d -p 8080:8080 -v /home/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -u root jenkins
sudo docker run -d -p 8080:8080 -v /home/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -u root [jenkins/jenkins image_id]
sudo docker ps -a
# http://공인ip:8080/ 로 이동
# initialAdminPassword를 입력하는 창이 나온다
# 로그 출력
# sudo docker logs [Jenkins 컨테이너 id] -> 안 나올 시
# initialAdminPassword 확인
sudo docker exec -it [Jenkins 컨테이너 아이디] /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword
# 값을 복사해서 웹에 붙여넣고 continue 클릭
왼쪽 클릭 5~10분 정도 소요
sudo docker ps -a
sudo docker exec -it [Jenkins 컨테이너 id] /bin/bash
### 도커 설치
curl -fsSLO http://get.docker.com/builds/Linux/x86_64/docker-17.04.0-ce.tgz
tar xzvf docker-17.04.0-ce.tgz
# bin 폴더로 도커의 실행 파일을 이동
mv docker/docker /usr/local/bin
# 용량 줄이기 위해서 기존 압축 파일 제거
rm -r docker docker-17.04.0-ce.tgz
docker login
cd /home
git clone https://github.com/jangky000/docker-jekins-express
# 컨테이너에서 나오기
exit
참고
https://goddaehee.tistory.com/260
https://goddaehee.tistory.com/258
1.jenkins 설정
Domain : Global credentials (unrestricted) 선택
Kind : Secret text 선택
Secret : 위에서 생성한 토큰 입력
ID : 본인이 지정하는 식별자(ID) 입력
출처:
https://goddaehee.tistory.com/258
[갓대희의 작은공간]
모든 설정이 완료 되었다면, 이후 설정한 Branch에 Push를 하였을때, 자동으로 jenkins 빌드가 유발되는 것을 볼 수 있다.
출처:
https://goddaehee.tistory.com/260
[갓대희의 작은공간]