# [Docker] Dockerfile [TOC] ## Dockerfile內的指令 ```=dockerfile! # FROM=使用的基礎映像(images) FROM ubuntu:latest # LABEL # maintainer=此 dockerfile 撰寫者和維護者的資訊 LABEL maintainer="your-email@example.com" # RUN=在容器內執行的命令 RUN apt-get update && apt-get install -y \ python3 \ python3-pip # COPY=將外部檔案複製到容器內 COPY ./app /app # ADD=將外部檔案複製到容器內。若外部檔案為tar,則會自動解壓縮到容器內;外部檔案可填url。 ADD ./app /app # WORKDIR=移動至某目錄(等同 cd /xxx) WORKDIR /app # ENV=用來設定環境變數 ENV NGINX_MAX_UPLOAD 4m # RUN=在容器內執行的命令 RUN pip3 install -r requirements.txt # EXPOSE=容器要開放的端口。docker run時也要下expose。 EXPOSE 80 # CMD=容器啟動時執行的命令。若 docker run 有帶指令(docker run [ContainerID] bash),則會執行bash,而不執行CMD指令。 CMD ["python3", "app.py"] # ENTRYPOINT=容器啟動時執行的命令。一定會被執行。 ENTRYPOINT ["docker-entrypoint.sh"] # ONBUILD=若有人將這一個Image設為基底Image時,才會執行的指令。執行的時機在FROM指令之後。 ONBUILD RUN mkdir my_dir ``` 接下來進入 dockerfile 的目錄中下指令建立 docker image ```=cmd $ cd /xxx/xx/xxx/ $ docker build -t <image-name> . $ docker build -t my-app . ``` 參考來源: [Dockerfile reference](https://docs.docker.com/engine/reference/builder/) ## CI/CD [docker docs - Configure CI/CD for your application](https://docs.docker.com/language/java/configure-ci-cd/)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up