[백준 바킹독] 0x09 - BFS 토마토(7576)
Introduction
이미지에는 불필요한 것들이 많이 포함되어 있을수 있기때문에 debian계열로는 slim, jessie, alpine등을 사용하여 용량을 줄일 수 있음 단, 필요한 패키지, 파일이 있을수 있음
Dockerfile에서 RUN명령을 개별로 실행시 실행이 끝날때마다 중간 이미지가 생성 체인으로 명령을 실행하면 한개만 만들어지기 때문에 크기가 줄어듬
개별 실행 예제
체인 실행 예제
apt-get을 실행 했다면, apt-get clean을 넣어주고, –no-install-recommends옵션(최소 설치)을 넣는다. /var/cache/apt/archives 디렉토리에 있는 다운로드 파일을 지워줌 /var/lib/pat/lists 디렉토리를 지워 패키지 리스트 파일도 지워줌
curl을 통한 파일다운로드시 필요한 파일을 설치한 후 삭제 시점은 Docker명령어에수 수행해야하며 체인을 사용해야지만 최종이미지에 포함되지 않는다. 만약 개별로 수행시 각 RUN마다 레이어가 생겨서 file.zip이 포함된다.
–no-trunc: 명령어, 설명을 …으로 표시하지 않고 전체를 보여준다. 각 layer마다 사용된 용량이 표시된다.
ADD, COPY는 기능을 포함하면서도, HTTP로 파일을 다운로드하거나, tar/zip파일을 풀어 설치하는 기능을 가지고 있음. 하지만, curl, wget을 사용하는 것이 좋다. 이유 : ADD를 통해 압축파일을 다운받고, 압축파일을 지워야 하는데 체인으로 처리 할수 없다.
ADD대신 RUN을 사용
ADD를 상용하기에 적합한 케이스
로컬 압축파일을 압축을 해제할때,
만약 copy와 run을 사용하게 되면, 불필요한 layer를 생성하게 된다.
Dockerfile 1개에 FROM 구문을 여러 개 두는 방식 각 FROM 명령문을 기준으로 스테이지를 구분하여, 특정 스테이지에서 생성된 것중에 사용되지 않거나 불필요한 모든 것을 무시하고, 필요한 부분만 가져와서 새로운 베이스 이미지로 빌드하여 생성
Pipfile에는 uwgi라는 패키지의 의존성을 명시하고 있고, 이 패키지를 위해서는 gcc가 필요하기때문에 apt-get install gcc를 실행 해야함 여기서, gcc는 uwgi설치에만 관여하고, 실제 애플리케이션 실행환경에는 필요 하지 않기때문에 멀티-스테이지 빌드를 사용할 수 있음
https://docs.docker.com/engine/reference/builder/#dockerignore-file
docker build시 명령어 COPY등을 통해서 프로젝트 파일을 컨테이너로 복사할 때 폭더, 파일등을 배제 하는 역할. .gitignore과 비슷하게 사용
The following is an example of specifying a file named target in any directory one level below the build context root.
On the other hand, if you want to specify a specific file name, not just a file hierarchy, use **
.
The following also excludes files whose names are extended by one character from target. For example, target1 and targetA are excluded.
note.
** When using the BuildKit backend, docker build searches for a .dockerignore file relative to the Dockerfile name. For example, running docker build -f myapp.Dockerfile .
will first look for an ignore file named myapp.Dockerfile.dockerignore
**
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
1167 트리의 지름
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Git 명령어를 사용한 하위 디렉토리 다운로드 Clone 할 로컬 저장소 생성
Introduction
# Fetch the submodule commits into the main repository git remote add submodule_origin git://url/to/submodule/origin git fetch submodule_origin
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Graph
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Introduction
Spring Project
the page for java
가벼운 Base image를 사용
version: 3.0.0a10
WIDTH
version: 3.0.0a10
#include <iostream> #include <thread> #include <chrono> #include <mutex> #include <atomic> #include <string.h>
version: 3.0.0a10
https://cplusplus.com/reference/future/
Multithreading support was introduced in C++11.
how to costom github blog using jekyll
You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different wa...