728x90

 코드 표기법 관련해서 거의 정형화 해서 사용해 왔기 때문에 그렇게 명칭에 대해서 민감해 본적이 없지만 잠시 정리해보려 합니다 .

 

1. 파스칼 표기법( PascalCase ) : 보통 클래스명에 사용중

- 단어의 첫 시작은 항상 대문자를 사용하는 표기법

- 쌍봉낙타표기법 이라고 불림

 

2. 카멜 표기법 ( camelCase ) : 변수나 함수명에 사용중

- 소문자로 시작하고 이어지는 시작은 대문자로 작성하여 단어 간 구분에 용이한 표기법

- 단봉난타표기법 이라고도 불림

 

3. 스네이크 표기법( snake_case ) : 데이터 베이스에 컬럼 등 명칭지정시 사용

- 단어 사이에 underscore(_)를 활용하는 표기법

- 변수명, 함수명, 데이터타입 등 에 활용

 

4. 헝가리언 표기법( Hungarian Notation ) : 카멜표기법과 같이 사용해서 함수나 변수로 사용중

- 명칭앞에 자료형등 타입명을 붙이는 표기법

( ex. strName, iAge, fnTestSum )

 

5. 케밥 표기법( Kebab case )

- 케밥에서 꼬치 모양을 딴 것으로 스네이크 표기법과 비슷하지만 하이픈(-)으로 구분하는 표기법

- css, html 에서 주로 사용함

( ex font-weight: bold )

 

 표기 방법이 용도별로 정해진 것은 아니지만 줄임말도 많이 사용되면 소통의 기준이 되듯이 소통에 편의성이 제공되기 때문에 참고해야 할 것입니다.

 

 

참고 

https://heytech.tistory.com/294

 

스네이크 표기법 vs 카멜 표기법 vs 파스칼 표기법

프로그래밍 시 변수명, 함수명 등의 관습(convention) 표기법 3가지에 대해 알아봅니다. 스네이크 표기법(snake_case) 단어 사이에 underscore(_)를 활용하는 표기법 Python에서 주로 사용 변수명, 함수명, 데

heytech.tistory.com

https://needjarvis.tistory.com/632

 

카멜, 파스칼, 스네이크, 헝가리안, 케밥 표기법 정리

프로그램 언어마다 개발하는 방식이 다 다르고, 변수명, 클래스명, 메소드명 등 표기법이 다르다는 것은 이해가 되지 않지만 분명 존재하며, 다양한 언어를 다루는 개발자들이 가장 힘들어 하는

needjarvis.tistory.com

 

728x90

'프로그램 > 짜투리상식' 카테고리의 다른 글

[docker] ubuntu 20.04 (202305)  (0) 2023.05.29
git 명령어 정리  (0) 2023.04.21
Dorker에 jenkins 설치(2023.04)  (0) 2023.04.17
Dorker에 Oracle 설치(2023.04)  (3) 2023.04.15
Dorker 윈도우에 설치하기( 2023.04 )  (0) 2023.04.15
728x90

사용하다보니 우분투가 제일 많이 사용하는 기본 도커 이미지가 되어 있어서 한번 정리해 보았습니다.

 

window 11 PC 설치되어 있는 도커 버전 확인

> docker --version
Docker version 20.10.24, build 297e128

1. 가장최근 버전 받는 방법과 20.04버전 우분투 도커 이미지 받기

# 우분투 v20.04버전 도커 이미지 다운받기
$ docker pull ubuntu:20.04

# 참고 : 최신버전 다운받기
$ docker pull ubuntu:latest

# 참고 : 도거 이미지 검색 ( 
$ docker search ubuntu
or
$ docker search ubuntu:20.04

※ 우분투를 받아서 설치하고자 하는 프로그램이 포함되어 있는 이미지가 있다면 시간을 조금더 절약할 수 있으므로 알아두는 것을 추천한다.

ex ) ubuntu/nginx, ubuntu/mysql, ubuntu/postgres

 

도커 설치 후 초기 업데이트 항목들

$ apt update & apt upgrade

 

초기 업데이트하면 좋은 내용들에 대해서 추가적으로 찾으면 업데이트 해보겠습니다.

728x90

'프로그램 > 짜투리상식' 카테고리의 다른 글

코드표기법(2024.08)  (0) 2024.08.07
git 명령어 정리  (0) 2023.04.21
Dorker에 jenkins 설치(2023.04)  (0) 2023.04.17
Dorker에 Oracle 설치(2023.04)  (3) 2023.04.15
Dorker 윈도우에 설치하기( 2023.04 )  (0) 2023.04.15
728x90

git 처음 연습할 때 정리해 놓았던거 같은데 지속적으로 사용하면 도움이 될 것 같아서 정리해 봅니다.

 

새로 만들때

>>>>  create a new repository on the command line   <<<<
echo "# study01" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M master
# git remote add origin https://github.com/si0-lab/study01.git
git remote add origin https://github.com/[계정]/[레파지토리명].git
git push -u origin master

기존에 있는 것에 올릴때 

>>>>  push an existing repository from the command line  <<<<
# git remote add origin https://github.com/si0-lab/study01.git
git remote add origin https://github.com/[계정]/[레파지토리명].git
git branch -M master
git push -u origin master

 

 

728x90

'프로그램 > 짜투리상식' 카테고리의 다른 글

코드표기법(2024.08)  (0) 2024.08.07
[docker] ubuntu 20.04 (202305)  (0) 2023.05.29
Dorker에 jenkins 설치(2023.04)  (0) 2023.04.17
Dorker에 Oracle 설치(2023.04)  (3) 2023.04.15
Dorker 윈도우에 설치하기( 2023.04 )  (0) 2023.04.15
728x90

 자주 CI/CD 설치 여부를 질문 받았는데 한번쯤은 설치해볼만도 한데 시도한 적이 없어서 시간이 나서 도전해보게 되었습니다.

 

우선 라이센스부터 공홈찾아서 확인해 봅시다. 구글에 검색하면 "Jenkins는 Java로 제작된 오픈 소스 CI"라고 나오네요.

https://www.jenkins.io/

 

Jenkins

Meet with Jenkins Community at cdCon + GitOpsCon 2023 The Continuous Delivery Foundation (CDF) is happy to host its fourth flagship event, cdCon, taking place on May 8–9, 2023 in Vancouver, Canada as cdCon + GitOpsCon, co-organized with the Cloud Native

www.jenkins.io

 공식홈페이지에 [Creative Commons Attribution-Share Alike 4.0 license] 라고 젠킨스 자체를 저작자표시 동일조건 변경허락을 한다고 나와있네요. mit 라이센스만 보다가 조금 생소해서 검색해보니 젠킨스를 변형해도 되나 라이센스를 유지해서 사용가능하다고 보면 되겠네요.

 설치 가이드 문서가 참 자세히 나와있어 보이네요.

더보기

이번 문서에서 Jenkins Docker를 컨테이너 동작까지만 확인하고 나머지는 추가적으로 정리할 것입니다.

 

우선 일반적인 사용 모델을 생각하면 다음과 같을 것 같습니다.

 

 1. 개발자PC 개발 -> 2. 버전관리툴 ex) git -> 3. jenkins 빌드 -> 4. 개발/운영 서버에 배포

 

 그럼 jenkins에서 동작해야 하는것은 아래 3단계로 볼 수 있습니다.

 가. git에서 마스터 버전만 내려받기.

 나. 빌드 -> 빌드성공유무

 다. target 서버에 배포

 

젠킨스 - 도커 에 설정해야 하는것을 정리하면 아래와 같을 것 같습니다. 

 기본설정  젠킨스 접속 포트, 사용자 권한 별( 관리, 일반 ) 접속 정보, 젠킨스 동작을 위한 java 정보 

a. git에 접속정보 ( or svn ) 

b. 다운받을 조건

c. 다운로드 폴더

d. 컴파일 ( 자바 또는 그외 )

e. 로그 - 모니터링

f.  배포위치 ( 한개 또는 그 이상 )

 

 


2차 시도... 1차시도에서는 윈도우에 설치 내용으로 들어가서 확인했는데 젠킨스 네트웍에 접속해서 도커 이미지를 빌드하는 내용어서 젠킨스 도커 사용을 위해 다시 정리하게 되었네요.

다시 리셋하고 정리해봅니다.

1. 공홈에서 나와있는 젠킨스 도커 이미지 받는 법으로 내려 받겠습니다.

> docker network create jenkins
> docker pull jenkins/jenkins

https://hub.docker.com/r/jenkins/jenkins/

 

Docker

 

hub.docker.com

jdk 11 버전이 설치되어 있다고 도커설명에 되어 잇습니다. ( OpenJDK 11.0.18 이 설치되어 있는것을 확인했습니다. )

2. 컨테이너를 만들어서 실행해 보겠습니다.

# 인증정보 다운로드 C:\dev\jenkins\certs
docker run --name jenkins-docker --rm --detach --privileged --network jenkins --network-alias docker --env DOCKER_TLS_CERTDIR=/certs --volume "C:/dev/jenkins/certs:/certs/client" --volume "C:/dev/jenkins/data:/var/jenkins_home" --publish 2376:2376 docker:dind

docker container ls
#container_id 확인
docker stop container_id
# docker run --name jenkins-blueocean --restart=on-failure --detach --network jenkins --env DOCKER_HOST=tcp://docker:2376 --env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 --publish 8080:8080 --publish 50000:50000 --volume "C:/dev/jenkins/certs:/certs/client" --volume "C:/dev/jenkins/data:/var/jenkins_home" jenkins/jenkins
# 포트포워딩 변경 localhost:9080 -> 도커:8080
docker run --name jenkins-blueocean --restart=on-failure --detach --network jenkins --env DOCKER_HOST=tcp://docker:2376 --env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 --publish 9080:8080 --publish 50000:50000 --volume "C:/dev/jenkins/certs:/certs/client" --volume "C:/dev/jenkins/data:/var/jenkins_home" jenkins/jenkins
#docker exec -it jenkins-blueocean bash
docker logs jenkins-blueocean

해당 이미지는 별도 설정이 필요한 것이 아닌 설정이 완료 된것으로 보입니다.

3. 초기 설정으로 들어가 보겠습니다. 웹으로 접속하여 젠킨스가 접속되는지 확인 후 로그 파일 보는 명령어를 통해 관리자패스워드는 확인 후 입력해 주면 됩니다.

http://localhost:8080 

4. 설치 및 계정 생성을 위해 [Install suggested plugins]를 선택해 줍니다.

플러그인이 다 설치되면 첫번째 관리자 계정을 생성하라고 공홈에 나와있네요.

5. 첫번째 관리자 계정을 생성해 줍니다.

예제)

Username : jenkins

Password : jenkins

Confirm password : jenkins

Full name : jenkins

E-mail address : google@gmail.com ( 본인이메일 )

 젠킨스 접속정보의 포트는 너무 많이 사용하는거라 추후 다른 웹서비스와 충돌이 날수 있기 때문에 변경하는 것이 좋아 보입니다. 이부분은 도커에서 외부접속 포트와 내부 포트 설정으로 풀 수도 있습니다. 참고바랍니다.

설치 완료 !!!!

 

 


이후 작업은 별도 작성하도록 하겠습니다.


------------ 여기서부터는 도전했던 이력으로 남긴것입니다. 참고만하세요.---------------------

※ 컨테이너 삭제없이 포트변경해서 실행하는 방법

docker stop [name]
docker commit [name] [newname]
docker run -p [port]:[port] -dit [newname]

3차시도 도커에서는 진행한 내용이 적을 경우 부담이 없으니 후다닥 재진행을 해볼까 합니다.

 단순 포트포워딩만 변경시 데이터는 "C:\dev\jenkins\certs, C:\dev\jenkins\data" 이 폴더에 있으니 가볍게 컨테이너 삭제 후 다시 실행해주시면 정상 동작하네요.

# 도커 이미지 다운로드
docker pull jenkins/jenkins
# 이전진행내역 삭제 새로 진행시 해당 폴더 생성
C:\dev\jenkins\certs
C:\dev\jenkins\data
# 포트포워딩 변경 localhost:9080 -> 도커:8080
docker run --name jenkins-blueocean --restart=on-failure --detach --network jenkins --env DOCKER_HOST=tcp://docker:2376 --env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 --publish 9080:8080 --publish 50000:50000 --volume "C:/dev/jenkins/certs:/certs/client" --volume "C:/dev/jenkins/data:/var/jenkins_home" jenkins/jenkins
#docker exec -it jenkins-blueocean bash

# 패스워드 확인
docker logs jenkins-blueocean

localhost:9080

여기까지 젠킨스 설치를 완료하였습니다.

certs 정보 갱신이 안되어서 1차시도에서 했던내용중 확인해서 2차 시도에 반영했습니다. 


1 차 시도 ................. 참고용입니다. 

 

 우선 젠킨스 설치를 안하고 도커를 받을 수 있는지 확인해 보겠습니다.

 공홈에 나와있는 자료가 있으니 시간 있으신 분은 정독 부탁해요. 공홈에 나와있는 것이 거의 알고 있어야 하는 자료라고 보시면 됩니다. 조금 과하게 많은 자료일 수도 있지만, 일단 읽어보는 습관이 좋다고 생각합니다. 

 부담된다면 번역지원 사이트에 URL를 입력하여 통으로 번역본을 보시는 것도 방법입니다. 

https://www.jenkins.io/doc/book/installing/docker/

 

Docker

If you have some experience with Docker and you wish or need to access your Docker container through a terminal/command prompt using the docker exec command, you can add an option like --name jenkins-tutorial to the docker exec command. That will access th

www.jenkins.io

번역

https://papago.naver.net/website?locale=en&source=en&target=ko&url=https%3A%2F%2Fwww.jenkins.io%2Fdoc%2Fbook%2Finstalling%2Fdocker%2F 

 

네이버 파파고

번역을 부탁해 파파고

papago.naver.net

 

역시나 도움되는 내용들이 그대로 적혀있네요.

적혀 있는 내용을 기반으로 그대로 따라해보고 검증해 봅시다. 

[공홈번역내용] MacOS 및 Linux에 도커이미지를 받는 방법 

더보기

1. 터미널 창을 엽니다.

docker network create jenkins

2. 다음 명령을 사용하여 Docker에 브리지 네트워크를 만듭니다.

docker run \
   --name jenkins-docker \①   
   --rm \②   
   --detach \③   
   --privileged \④   
   --network jenkins \⑤   
   --network-alias docker \⑥   
   --env DOCKER_TLS_CERTDIR=/certs \⑦   
   --volume jenkins-docker-certs:/certs/client \⑧   
   --volume jenkins-data:/var/jenkins_home \⑨   
   --publish 2376:2376 \⑩   
   docker:dind \⑪   
   --storage-driver overlay2⑫

3. Jenkins 노드 내에서 Docker 명령을 실행하려면docker:dind다음 명령을 사용하여 도커 이미지:

( 임의) 이미지 실행에 사용할 도커 컨테이너 이름을 지정합니다.기본적으로 Docker는 컨테이너의 고유한 이름을 생성합니다.
(옵션) 도커 컨테이너(도커 이미지의 인스턴스)가 셧다운되면 자동으로 삭제됩니다.
( 임의) 도커 컨테이너를 백그라운드에서 실행합니다.이 인스턴스는 나중에 실행함으로써 중지할 수 있습니다.
docker stop jenkins-docker.
현재 Docker에서 Docker를 실행하려면 권한이 있어야 합니다.이 요건은 새로운 Linux 커널 버전에서는 완화될 수 있습니다.
이는 이전 단계에서 작성된 네트워크에 해당합니다.
도커 컨테이너의 도커를 호스트명으로 사용할 수 있도록 합니다.docker의 범위 내에서jenkins네트워크.
도커 서버에서 TLS를 사용할 수 있습니다.권한 있는 컨테이너를 사용하기 때문에 아래에 설명된 공유 볼륨을 사용해야 하지만 이 방법을 사용하는 것이 좋습니다.이 환경 변수는 도커 TLS 인증서가 관리되는 루트 디렉터리를 제어합니다.
를 매핑합니다./certs/client컨테이너 내부의 디렉토리를 Docker 볼륨으로 이동합니다.jenkins-docker-certs상기와 같이 작성했습니다.
를 매핑합니다./var/jenkins_home컨테이너 내부의 디렉토리를 Docker 볼륨으로 이동합니다.jenkins-data이렇게 하면 이 Docker 컨테이너의 Docker 데몬에 의해 제어되는 다른 Docker 컨테이너가 Jenkins에서 데이터를 마운트할 수 있습니다.
( 임의) 호스트머신의 도커 데몬 포트를 표시합니다.이것은 다음 명령을 실행하는 데 유용합니다.docker이 내부 도커 데몬을 제어하기 위한 명령을 호스트 시스템에서 사용합니다.
docker:dind이미지 그 자체입니다.이 이미지는 실행 전에 다음 명령을 사용하여 다운로드할 수 있습니다.
docker image pull docker:dind.
도커 볼륨용 스토리지 드라이버.서포트되고 있는 옵션에 대해서는, 「도커 스토리지 드라이버"Docker storage drivers"를 참조해 주세요.
( ※ 볼륨 선언을 통해 도커 안에 경로로 도커 밖의 경로를 선언해서 접근할 수 있다는 이야기입니다. )

주의: 위의 명령어 스니펫을 복사하여 붙여넣을 수 없는 경우 주석 없이 다음 버전을 복사하여 붙여넣어 보십시오.

docker run --name jenkins-docker --rm --detach \
  --privileged --network jenkins --network-alias docker \
  --env DOCKER_TLS_CERTDIR=/certs \
  --volume jenkins-docker-certs:/certs/client \
  --volume jenkins-data:/var/jenkins_home \
  --publish 2376:2376 \
  docker:dind --storage-driver overlay2
 

4.다음 두 단계를 수행하여 공식 Jenkins Docker 이미지를 사용자 정의합니다.

   a.다음 내용으로 도커 파일을 만듭니다.

FROM jenkins/jenkins:2.387.2
USER root
RUN apt-get update && apt-get install -y lsb-release
RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \
  https://download.docker.com/linux/debian/gpg
RUN echo "deb [arch=$(dpkg --print-architecture) \
  signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \
  https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
RUN apt-get update && apt-get install -y docker-ce-cli
USER jenkins
RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"

   b. 이 Docker 파일에서 새 도커 이미지를 작성하고 이미지에 의미 있는 이름을 지정합니다(예: myjenkins-blueocean: 2.387.2-1).

docker build -t myjenkins-blueocean:2.387.2-1 .

이전에 이 작업을 수행하지 않은 경우 위의 프로세스에서 Jenkins Docker 공식 이미지가 자동으로 다운로드된다는 점에 유의하십시오.

5. 직접 실행myjenkins-blueocean:2.387.2-1다음 명령을 사용하여 도커에서 컨테이너로 이미지를 만듭니다.

docker run \
  --name jenkins-blueocean \①
  --restart=on-failure \②
  --detach \③
  --network jenkins \④
  --env DOCKER_HOST=tcp://docker:2376 \⑤
  --env DOCKER_CERT_PATH=/certs/client \
  --env DOCKER_TLS_VERIFY=1 \
  --publish 8080:8080 \⑥
  --publish 50000:50000 \⑦
  --volume jenkins-data:/var/jenkins_home \⑧
  --volume jenkins-docker-certs:/certs/client:ro \⑨
  myjenkins-blueocean:2.387.2-1 ⑩
( 임의) 이 Docker 이미지 인스턴스의 Docker 컨테이너 이름을 지정합니다.
컨테이너가 멈추면 항상 재시작하십시오.수동으로 중지된 경우 Docker 데몬이 재시작되거나 컨테이너 자체가 수동으로 재시작될 때만 재시작됩니다.
( 선택사항) 현재 컨테이너를 백그라운드에서 실행하고("분리" 모드) 컨테이너 ID를 출력합니다.이 옵션을 지정하지 않으면 이 컨테이너의 실행 중인 Docker 로그가 터미널 창에 출력됩니다.
이 컨테이너를 에 접속합니다.jenkins네트워크를 정의합니다.그러면 이전 단계의 Docker 데몬을 호스트 이름을 통해 이 Jenkins 컨테이너에서 사용할 수 있습니다.docker.
에 의해 사용되는 환경변수를 지정합니다.docker,docker-compose이전 단계에서 도커 데몬에 접속하기 위한 도커 도구 및 기타 도커 도구.
현재 컨테이너의 포트 8080을 호스트 시스템의 포트 8080에 매핑(즉, "퍼블리시")합니다.첫 번째 숫자는 호스트의 포트를 나타내고 마지막 숫자는 컨테이너의 포트를 나타냅니다.따라서, 당신이 지정한 경우,-p 49000:8080이 옵션을 사용하려면 포트 49000을 통해 호스트 시스템의 Jenkins에 액세스해야 합니다.
(임의) 현재 컨테이너의 포트 50000을 호스트머신의 포트 50000에 매핑합니다.이것은, 1개 이상의 착신 Jenkins 에이전트를 다른 머신에 셋업 해, 다음에, 다음의 머신과 상호 작용하고 있는 경우에만 필요합니다.jenkins-blueocean컨테이너(Jenkins "컨트롤러").인바운드 Jenkins 에이전트는 기본적으로 TCP 포트 50000을 통해 Jenkins 컨트롤러와 통신합니다.Jenkins 컨트롤러에서 보안 페이지를 통해 이 포트 번호를 변경할 수 있습니다.Jenkins 컨트롤러의 인바운드 Jenkins 에이전트의 TCP 포트를 51000(예를 들어)으로 변경하는 경우 Jenkins를 다시 실행해야 합니다(이를 통해).docker run …command)를 사용하여 이 "command" 옵션을 지정합니다.--publish 52000:51000마지막 값은 Jenkins 컨트롤러의 변경된 값과 일치하며 첫 번째 값은 Jenkins 컨트롤러를 호스트하는 머신의 포트 번호입니다.착신 Jenkins 에이전트는 해당 포트(이 예에서는 52000)의 Jenkins 컨트롤러와 통신합니다.WebSocket 에이전트에는 이 설정이 필요하지 않습니다.
를 매핑합니다./var/jenkins_home컨테이너의 디렉토리 이름을 사용하여 Docker 볼륨으로 이동합니다.jenkins-data매핑하는 대신/var/jenkins_home디렉토리를 도커 볼륨에 매핑할 수도 있습니다.또, 이 디렉토리를 머신의 로컬 파일 시스템의 디렉토리에 매핑할 수도 있습니다.예를 들어 옵션 지정
--volume $HOME/jenkins:/var/jenkins_home컨테이너의 맵을 만듭니다./var/jenkins_home로의 디렉토리jenkins내의 서브 디렉토리$HOME로컬 머신의 디렉토리(일반적으로 다음과 같습니다)/Users/<your-username>/jenkins또는/home/<your-username>/jenkins. 이 소스 볼륨 또는 디렉토리를 변경하면 에서 볼륨이docker:dind위의 컨테이너를 이에 맞게 업데이트해야 합니다.
를 매핑합니다./certs/client이전에 작성한 디렉토리jenkins-docker-certs용량.이것에 의해, 도커 데몬에의 접속에 필요한 클라이언트 TLS 증명서는, 에 의해서 지정된 패스로 사용할 수 있게 됩니다.DOCKER_CERT_PATH환경 변수입니다.
이전 단계에서 작성한 도커 이미지의 이름.

※ 주의: 위의 명령어 스니펫을 복사하여 붙여넣을 수 없는 경우 주석 없이 다음 버전을 복사하여 붙여넣어 보십시오.

docker run --name jenkins-blueocean --restart=on-failure --detach \
  --network jenkins --env DOCKER_HOST=tcp://docker:2376 \
  --env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \
  --publish 8080:8080 --publish 50000:50000 \
  --volume jenkins-data:/var/jenkins_home \
  --volume jenkins-docker-certs:/certs/client:ro \
  myjenkins-blueocean:2.387.2-1

6. 포스트 인스톨 셋업(Post-installation setup wizard.) 마법사로 진행됩니다.

 [공홈번역내용] Windows 에 도커이미지를 받는 방법 ( 항목별 설명은 위글의 리눅스에 설치시 설명과 같아서 윈도우버전에는 설명이 생략되어 있습니다. 기본 명령어는 같으니 항목에 대해서 알고 싶으신분은 참고바랍니다. )

더보기

Jenkins 프로젝트는 윈도우즈 컨테이너 이미지가 아닌 리눅스 컨테이너 이미지를 제공합니다.Docker for Windows 설치가 실행되도록 구성되어 있는지 확인합니다.Linux Containers보다는Windows ContainersLinux 컨테이너로의 전환 순서에 대해서는, 도커 메뉴얼을 참조해 주세요.실행하도록 구성되면Linux Containers순서는 다음과 같습니다.

1. 위의 macOS  Linux 지침과 마찬가지로 명령 프롬프트 창을 엽니다.

2. 도커에서 브리지 네트워크 생성

docker network create jenkins

3. 도커를 실행합니다:dind Docker image

docker run --name jenkins-docker --rm --detach ^
  --privileged --network jenkins --network-alias docker ^
  --env DOCKER_TLS_CERTDIR=/certs ^
  --volume jenkins-docker-certs:/certs/client ^
  --volume jenkins-data:/var/jenkins_home ^
  --publish 2376:2376 ^
  docker:dind

4. 다음 두 단계를 수행하여 공식 Jenkins Docker 이미지를 사용자 정의합니다.

   a. 다음 내용으로 도커 파일을 만듭니다.

FROM jenkins/jenkins:2.387.2
USER root
RUN apt-get update && apt-get install -y lsb-release
RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \
  https://download.docker.com/linux/debian/gpg
RUN echo "deb [arch=$(dpkg --print-architecture) \
  signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \
  https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
RUN apt-get update && apt-get install -y docker-ce-cli
USER jenkins
RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"

   b. 이 Docker 파일에서 새 도커 이미지를 작성하고 이미지에 의미 있는 이름을 지정합니다(예: myjenkins-blueocean: 2.387.2-1).

docker build -t myjenkins-blueocean:2.387.2-1 .

이전에 이 작업을 수행하지 않은 경우 위의 프로세스에서 Jenkins Docker 공식 이미지가 자동으로 다운로드된다는 점에 유의하십시오.

5. 직접 실행myjenkins-blueocean:2.387.2-1다음 명령을 사용하여 도커에서 컨테이너로 이미지를 만듭니다.

docker run --name jenkins-blueocean --restart=on-failure --detach ^
  --network jenkins --env DOCKER_HOST=tcp://docker:2376 ^
  --env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 ^
  --volume jenkins-data:/var/jenkins_home ^
  --volume jenkins-docker-certs:/certs/client:ro ^
  --publish 8080:8080 --publish 50000:50000 myjenkins-blueocean:2.387.2-1

6. 셋업 마법사로 넘어갑니다.

※ 윈도우에 설치해 봅시다. 공식 홈페이지에 설명 자체는 잘되어 있네요. 로컬 폴더와 도커 이미지에서 접근할 경로 설정만 변경해서 사용하면 될 것 같습니다. 사전에 C:/workspace/jenkins/data, C:/workspace/jenkins/certs 를 원하시는 폴더로 먼저 만드시고 경로를 도커 이미지에서 사용한다고 보시면 됩니다. 

참고 ) --volume="C:/workspace:/root/workspace"  이런식으로 변경해 주시면 됩니다.

적용 예 )

docker run --name jenkins-blueocean --restart=on-failure --detach ^
  --network jenkins --env DOCKER_HOST=tcp://docker:2376 ^
  --env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 ^
  --volume "C:/workspace/jenkins/data:/var/jenkins_home" ^
  --volume "C:/workspace/jenkins/certs:/certs/client:ro" ^
  --publish 8080:8080 --publish 50000:50000 myjenkins-blueocean:2.387.2-1

 도커 이미지 받는 부분에 대한 공홈 내용을 보셨다면 이제 실제 윈도우 PC에 설치를 해보겠습니다. 

 참고로 도커 허브는 도커이미지를 보관하는 기간이 있기 때문에 이글을 보실때는 제가 설치한 버전의 이미지가 사용할 수 없는 경우도 있을 것입니다. 그래서 제목에 이글을 작성한 달을 적어 놓았으니 참고 바랍니다.

# 윈도우 파워셀에서
> docker network create jenkins

※ 참고로 에러 메시지가 [error during connect: In the default daemon configuration on Windows]나오면 윈도우 도커를 실행해주지 않아서 발생한것입니다. 기본 도커는 로컬에 도커데몬서버가 실행되고 우리가 도커 명령을 치면 도커데몬을 통해 도커 허브에 연결한다고 알고 계시면 됩니다.

 저는 도커에 연결할 폴더를 [C:/dev/jenkins/certs, C:/dev/jenkins/data] 로 예정입니다. 로컬폴더를 먼저 만들시기 바랍니다.

 

 도커는 이미지가 없을 경우 실행명령을 하면 이미지를 찾아보고 없을경우 내려받아서 실행하는 것이 기본입니다. 하지만 실행시 이미지를 못 찾거나 원하는 이미지를 사용해서 컨테이너를 작성을 원할 경우는 이미지를 다운 받아서 컨테이너를 싱행하는 방식으로 하면 됩니다. 우선 공홈에 나와있는 방식으로 진행해보겠습니다.

# 윈도우 파워셀에서
docker run --name jenkins-docker --rm --detach --privileged --network jenkins --network-alias docker --env DOCKER_TLS_CERTDIR=/certs --volume "C:/dev/jenkins/certs:/certs/client" --volume "C:/dev/jenkins/data:/var/jenkins_home" --publish 2376:2376 docker:dind

정상적으로 잘 되긴 했는데 ... jenkins-docker 이미지 명이 docker로 받아졌네요.

정상실행 후 컨테이너 모습
정상 실행 후 도커 이미지

 우선은 공홈에 나와있는 내용들을 다 확인 후 정상확인이 되었다면 변경해서 한번 더 인증문제가 없는지 확인하시기 바랍니다.

 저는 먼저 도커이미지명을 좀 더 확실히 알수 있게 컨테이너를 중지하고 이미지명을 변경해 보겠습니다.

( dind: Docker-in-Docker 도커 컨테이너 내부에서 도커데몬을 사용하는 기술 )

( Dood : docker out of docker 일반적으로 사용하는 방법, 도커를 사용하는 효율성 면에서 중복구성을 피한다는 면에서 도커사용의 일반적이라 생각할 수 잇다. 더 자세한 내용은 추후 다시 정리하고 젠킨스을 해보겠습니다. )

docker container ls   
# 조회된 도커 id 확인
docker stop container_id

docker image tag docker:dind jenkinsdocker:dind

docker run --name jenkins-docker --rm --detach --privileged --network jenkins --network-alias docker --env DOCKER_TLS_CERTDIR=/certs --volume "C:/dev/jenkins/certs:/certs/client" --volume "C:/dev/jenkins/data:/var/jenkins_home" --publish 2376:2376 jenkinsdocker:dind

docker container ls 
# 조회된 도커 id 확인

$ su - root
$ apt-get update && apt-get install -y lsb-release

# linux에서 url 호출명령 curl
$ curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc https://download.docker.com/linux/debian/gpg

$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.asc] https://download.docker.com/linux/debian $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list

$ apt-get update && apt-get install -y docker-ce-cli

$ su - jenkins
$ jenkins-plugin-cli --plugins "blueocean docker-workflow"

 

 

 

 

 

 

 

 

 

※ 참고 : 도커 dood 관련 참고 자료

https://sreeninet.wordpress.com/2016/12/23/docker-in-docker-and-play-with-docker/

728x90

'프로그램 > 짜투리상식' 카테고리의 다른 글

[docker] ubuntu 20.04 (202305)  (0) 2023.05.29
git 명령어 정리  (0) 2023.04.21
Dorker에 Oracle 설치(2023.04)  (3) 2023.04.15
Dorker 윈도우에 설치하기( 2023.04 )  (0) 2023.04.15
맥미니 M2pro 개발환경 설정  (0) 2023.03.21

+ Recent posts