Appearance
aside: true
Dockerfile
ENV
dockerfile
ENV TZ=Asia/Shanghai
FROM
从一个镜像创建一个新的构建阶段
dockerfile
FROM node:latest AS builder
WORKDIR
工作目录
dockerfile
WORKDIR /usr/local/deploy
这样工作目录的 .
就是 workdir, 比如 RUN copy index.js .
把index.js文件copy到/usr/local/deploy
COPY
从本地 copy 文件到镜像
将当前所有文件拷贝到工作目录, 注意:隐藏文件也会被copy过去, 包括.git目录
dockerfile
COPY . .
copy 文件 a.txt, b.txt 到 src 目录
dockerfile
COPY a.txt b.txt src/
copy src 目录文件到 src 目录
dockerfile
COPY src/ src/
从 nginx:latest镜像copy nginx.conf, 需要使用到 --from
选项
dockerfile
COPY --from=nginx:latest /etc/nginx/nginx.conf /nginx.conf
从 builder 获取文件到当前工作目录
dockerfile
COPY --from=builder /var/www/html/java.tar.gz .
ARG
定义变量
dockerfile
ARG build=build
# 或
# 如果变量build不存在,则使用默认值dev, 这是shell脚本的写法
ARG build=${build:-dev}
使用变量需要加上$
, $build
或者 ${build}
EXPOSE
暴露端口
dockerfile
EXPOSE 80
RUN
执行命令
dockerfile
RUN copy index.js .
ENTRYPOINT
启动入口
dockerfile
ENTRYPOINT sh -c "apache2-foreground"
建议加上sh -c
, 参数是字符串,把字符串作为整体传递给shell解释器,具有相同的权限,对于执行复杂命令很有帮助