Kubernetes

Dockerfiler 추출(대략적)

아르비스 2022. 7. 4. 08:43

Docker 를 사용하다 보면, Dockerfile을 추출하고 싶을때가 있다.

 

완벽하게 Docker에서 Dockerfile의 복원은 어렵지만 대략적으로 확인은 다음과 같은 방법으로 가능하다.

 

$ docker history --no-trunc reddiana/jupyterlab-elyra  | tac | tr -s ' ' | cut -d " " -f 5- | sed 's,^/bin/sh -c #(nop) ,,g' | sed 's,^/bin/sh -c,RUN,g' | sed 's, && ,\n  & ,g' | sed 's,\s*[0-9]*[\.]*[0-9]*\s*[kMG]*B\s*$,,g' | head -n -1

 

혹은

$ docker history --no-trunc --format "{{.CreatedBy}}" reddiana/jupyterlab-elyra | # extract information from layers
        tac                                                    | # reverse the file
        sed 's,^\(|3.*\)\?/bin/\(ba\)\?sh -c,RUN,'             | # change /bin/(ba)?sh calls to RUN
        sed 's,^RUN #(nop) *,,'                                | # remove RUN #(nop) calls for ENV,LABEL...
        sed 's,  *&&  *, \\\n \&\& ,g'

 

"reddiana/jupyterlab-elyra" image에 대한 확인 방법.. 이다.