9-28-TD
9/28일
오늘은 어제의 연속으로 bitbuckit runners와 pipeline을 다루었다.
아직 다룬지 얼마 안된것과 도커에 대해 자세히 모르기 때문에 runner를 실행시킬때마다 빌드실패의 늪에 빠지게 되었다. SSH private key를 도커컨테이너 내부로 전달을 했어야 했는데 미숙하여 환경값으로 저장까지는 했으나 제대로 보내지 못하였고, 여러 커뮤티니에 비슷한것들을 찾아 다니던 끝에 ssh private key는 넘겨 줄 수 있었지만, 이제는 컨테이너끼리 메세지큐를 보내는곳에서 에러가 발생했다.
해결한 문제
1 | pipelines: |
1 | FROM pytorch/pytorch:1.7.0-cuda11.0-cudnn8-runtime |
도커파일을 빌드하는 과정에서 argument 를 받아오긴 했는데 도커파일 안에서 선언은 하지 않아서 계속 에러가 발생했다.
ARG and ENV의 차이
ARG와 ENV의 가장 큰 차이점은 빌드를 하고난 다음에도 사용이 가능한가? 의 차이이다. ARG는 빌드시에만 쓰이는 argument이며 ENV는 빌드가 끝나고도 사용 가능한 환경변수라고 생각할 수 있다. Dockerfile이 아닌 명령어로 빌드를 할때는 arg만 가능하고, run을 할때는 env의 선언만 가능하다.
- ARG
- Dockerfile에서만 사용되는 변수 선언
- docker build 시에 –build-arg 옵션을 활용하여 오버라이딩 할 수 있다.
- ENV
- Dockerfile뿐만 아니라 컨테이너 내에서 사용가능한 변수 선언
- docker run 시에 –e 옵션을 활용하여 오버라이딩 할 수 있다.