2020년 9월 28일 월요일

Go, Go, Go, Golang ...

GOPATH 에 대한 이해

http://amazingguni.github.io/blog/2016/05/go-chapter-2-1-%EC%84%A4%EC%B9%98_%EB%B0%8F_%EC%8B%9C%EC%9E%91

초간단 웹서버 제작

http://amazingguni.github.io/blog/2016/06/go-chapter-6-%EC%9B%B9-%EC%96%B4%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EC%9E%91%EC%84%B1%ED%95%98%EA%B8%B0


-계속 추가중-

2020년 9월 27일 일요일

Jenkins Docker 내에서 docker build 하기

 도커안의 젠킨스 루트로 들어가서

wget -O /tmp/docker.tgz https://download.docker.com/linux/static/stable/x86_64/docker-19.03.8.tgz

tar -xzf /tmp/docker.tgz -C /tmp

mv /tmp/docker/* /usr/bin/


groupadd -o -g $DOCKER_GROUP_GID docker

usermod -g docker jenkins


하여 도커설치 
service docker start 하면 에러가 떠서 
curl -sSL https://get.docker.com/ | sh
를 해서 서비스는 추가되는데, 도커가 안올라옴. 

--> 도커안의 젠킨스에서 도커를 구동하기 위해서는 별도의 조치가 필요
https://coders-shelf.com/jenkins-docker-agent/

2020년 9월 26일 토요일

Jenkins 에 slack연동

슬랙에서 app추가에서  Jenkins CI를 추가함. 그러면  인터그레이션 설정토큰과 채널명,설정방법이나옴.


젠킨스에 슬랙 플러그인을 설치한다.

젠킨스설정(configure)에 가서 

워크스페이스를 슬랙의 워크스페이스이름으로

인증을 kind: SectetText , Secret: 슬랙에서 준 토큰, ID: 워크스페이스이름 이름으로 저장

채널명은 알림할 채널명으로 지정

테스트해보면 메시지가 감.

젠킨스 프로젝트 설정에 가보면

빌드후조치->Slack notification 이 적당한 것들을 체크하면 빌드시에 슬랙에 문자옴

fuck-curtaincall - #13 Started by user kim (Open) 


Dokcer 내의 Jenkins 에서 nodejs , npm , nuxtjs, vuejs 빌드하기

 일단 Docker 에 jenkins/jenkins  이미지를  다운로드 받는다.

* 주의 kitematic 에서의 jenkins는 잘안됨

docker pull jenkins/jenkins:lts <- lastest도 괘안

받아서 기동후 쉘로 들어가서 암호찾아내서 일단 스탠다드 인스톨.

인스톨이 다 되었다면 /var/jenkins_home 폴더는 로컬폴더에 연결하고 다시 기동.

왠지 jenkins에서 nodejs 플러그인을 설치하면 될것같지만, 안된다.

그래서 젠킨스 컨테이너의 쉘을 root 권한으로 들어간다.

$ docker exec -it --user root YourContainer /bin/bash

애네들을 실행한다.

apt-get update

apt-get install -y git curl vim sudo apt-utils

curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -

apt-get install -y nodejs

rm -rf /var/lib/apt/lists/*

또는

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash

를 실행해서 nvm 을 설치하고

nvm install 12.6.3

해서 node를 설치하면

/root/.nvm/versions/node/v12.16.3

이딴 폴더가 생기지만 root 폴더밑에 있어서 jenkins가 읽지 못함.

단순무식으로 v12.16.3 의 모든 내용을 /var/jenkins_home/nodes/ 밑에 복사하자.

그리고나서 젠킨스 빌드시의 execute shell 에서

cd /var/jenkins_home/workspace/Fuck-curtaincall

/var/jenkins_home/nodes/bin/npm install

/var/jenkins_home/nodes/bin/npm run build

하면 nuxtjs 가 빌드된다.

그걸 웹서버에 올리고 재가동 하면 끄읕.


참. 젠킨스설정에서

이 빌드는 매개변수가 있습니다 . 에서

매개변수 branch 기본밸류 master

하고  소스코드관리에서 branch to build 항목에서

*/${branch} 하면됨

Nuxtjs, Springboot docker 이미지 만들기

 1.  nuxtjs 

Dockerfile 생성후

FROM node:12

WORKDIR /app
ADD . /app/

# global install & update
RUN npm i -g npm
#&& npm i -g yarn

RUN rm yarn.lock
RUN yarn
RUN yarn build

ENV HOST 0.0.0.0
EXPOSE 80

# start command
CMD [ "yarn", "start" ]

#sudo docker build --tag web-front:1.0.0 .
#docker run --name web_80 -p 80:80 web-front:1.0.0
#docker run --name web_8081 -p 8081:80 web-front:1.0.0

2.springboot
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE=target/*.war
COPY ${JAR_FILE} web-backend.war
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Dspring.profiles.active=local","-jar","/web-backend.war"]
#docker build --build-arg "JAR_FILE=build/libs/*.war" -t web-backend:1.0.0 .
#docker run --name hehe3 -p 8081:8081 web-backend:1.0.0