jenkins shell script 에서 발생한 오류들

llunaB·2022년 3월 15일
0
post-thumbnail

1. cd 를 주의깊게 사용하기

  • pwd
    /var/jenkins_home/workspace/a307

작업 위치가 컨테이너 내부이므로 -v 옵션으로 호스트경로와 매핑한 것과는 별개로 cd.. 명령어로 바로 호스트 경로로 이동할 수가 없다.
이동하고 싶다면 exit 등을 사용해야 할 것이다.

굳이 그럴 필요는 없고 컨테이너 안에서 도커파일을 빌드하면 된다.
도커파일안에 필요한 정보는 COPY 되도록 해두었으니 돌려보도록 하자.

  • 도커 권한문제 발생
    분명 설치할때 우분투를 도커 유저그룹에 추가했는뎅..

  • /var/run/docker.sock 파일의 권한을 666으로 변경하여 그룹 내 다른 사용자도 접근 가능하게 변경

sudo chmod 666 /var/run/docker.sock

위 두 문제는 모두 jenkins shell script 가 아닌 ubuntu 에 접속하여 해결하였다. 왜? 지금 shell 은 jenkins 내부 컨테이너 쉘인듯 하다 젠킨스 자체 볼륨인것같다.


아직 확실치는 않지만, jenkins 내부의 무언가라는건 알 수 있다.
그래서 apt-get update 실행하면 권한문제가 발생하고, 그래서 sudo도 사용할 수 없다.

따라서 ubuntu 내에서 도커 권한문제를 해결해주었다.

2. 도커파일에 대한 이해부족

프론트 도커파일

#nginx 베이스이미지
FROM nginx 
#내가 설정한 엔진엑스 파일을 호스트에서 컨테이너로 복사
COPY nginx/nginx.conf /etc/nginx/conf.d/default.conf
#빌드된 프론트 파일을 엔진엑스 컨테이너 경로로 옮김
COPY --from=build /app/build /usr/share/nginx/html

이 부분에 대한 설정에서 오류가 발생했다.

FROM 을 사용하게 되면 그 베이스이미지로 경로가 잡힌다.

COPY nginx/nginx.conf
COPY ~/nginx/nginx.conf

등 경로를 이리저리 바꿔봤자 베이스이미지 컨테이너 안이다.

--from=build 옵션이 있기때문에, 저 도커파일 위에 node 이미지를 build 로 as 별명붙여주고, 노드이미지의 /app/build 경로에서 파일을 복사해 nginx 이미지의 /usr/share/nginx/html 로 붙여넣기한다.

3. Execute shell 을 할때마다 위치는 기본경로로 돌아간다.

profile
안녕하세요. 성장하는 주니어 개발자입니다. :-)

0개의 댓글