'데이터 엔지니어'로 성장하기

정리하는 걸 좋아하고, 남이 읽으면 더 좋아함

기타/Docker

Docker) run할 때 git pull하기

MightyTedKim 2021. 11. 12. 08:58
728x90
반응형

spark-base 이미지 안에서 run 할 때 git pull 을 할 일이 생겼다.

(build할 때 git pull 은 사실 git action이나 gitlab runner를 사용할 부분인 것 같다.)

 

spark-base 이미지는 java가 base인 debian이다.

나는 base 이미지에다가 필요한 패키지를 설치햇다.

 

 

Dockerfile

FROM spark-3.1.2-base/spark-py:1.0.0
USER root

# vm에서 프록시 설정(생략 가능)
ENV DEBIAN_FRONTEND=noninteractive \
    TZ=Asia/Seoul \
    https_proxy=http://1**.2**.**.**2:**80 \
    http_proxy=http://1**.2**.**.**2:**80

#label add
LABEL comment "util add"

#alias add
RUN echo "alias ll='ls -al'" >> /root/.bashrc

#apt-get
RUN apt-get update && apt-get install -y curl vim git openssh-client --no-install-recommends \
        && rm -rf /var/lib/apt/lists/*

# gitlab
ADD ./id_ed25519 /root/.ssh/id_ed25519

# Clone the conf files into the docker container
WORKDIR /app

# to avoid fingerprint
RUN ssh-keyscan 1**.2**.**.12 >> /root/.ssh/known_hosts
RUN git clone git@1**.2**.**..12:ted.kim/build-docker-image.git

 

설명

git, openssh 두 개를 설정하고

/root/.ssh에 gitlab에 등록한 키를 추가하고

ssh-keyscan 으로 fingerprint 가 나오지 않게 설정한다.

 

그리고 entrypoint 쪽에 아래 코드를 추가한다.

echo 'add GIT clone '
git clone git@1**.2**.**.12:ted.kim/build-docker-image.git ./repo
chmod +x ./repo

docker로 실행하면 이렇게 된다,

pure docker run with `--network=host` option
```
$ docker run --network=host -it  private.repo/test/spark-3.1.2-util:1.0.1 /bin/sh
(...)
+ echo 'Non-spark-on-k8s command provided, proceeding in pass-through mode...'
Non-spark-on-k8s command provided, proceeding in pass-through mode...
+ CMD=("$@")
+ echo 'add GIT clone '
add GIT clone
+ git clone git@1**.2**.**.12:ted.kim/build-docker-image.git ./repo
Cloning into './repo'...
(...)

k8s 로 실행하면 이렇게 된다

after airflow kubernetesPodOperator run
```
$ k logs spark-312-aws-readparquet-name.d127b74252714b6da2d684c2ace2307c -n airflow-test
(...)
+ echo 'Non-spark-on-k8s command provided, proceeding in pass-through mode...'
Non-spark-on-k8s command provided, proceeding in pass-through mode...
add GIT clone
+ CMD=("$@")
+ echo 'add GIT clone '
+ git clone git@1**.2**.**.12:ted.kim/build-docker-image.git ./repo
Cloning into './repo'...
+ chmod +x ./repo
(...)

 

 

728x90
반응형