作用
- Dockerfile 是用来构建镜像的
- Dockerfile 里的每一行, build 的时候都会对应一个 image
调试
- 思路
- dockerfile 里的每一行, build 的时候都会对应一个 image
- 一个image可以使用 docker create 命令创建一个 container
- 然后使用 docker export 命令将 container 导出为压缩包
- 解压即可看到image对应的文件
1 |
|
COPY 命令使用
- copy: 从本地路径 copy 到 image 内部
1
2
3
4
5
6
7# 设置 image 工作目录为 /src
WORKDIR /src
# 第一个. : 本地 Dockerfile 所在路径
# 第二个. : image内 /src
# 类似于linux: copy ./* /src
COPY . . - copy 只能访问到 Dockerfile 所在目录, 所以:
- 只能是 COPY . .
- 不能 COPY .. .
- 路径说明
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16# Dockerfile 初始本地路径
# /root/github/dir1/Dockerfile
# /root/github/dir1/***.sln
# /root/github/dir1/DM.Log.Service/***.scproj
WORKDIR /src
COPY . .
# 此时, image内路径为:
# /src/Dockerfile
# /src/***.sln
# /src/DM.Log.Service/***.
# 即: /root/github/dir1/ == /src/
WORKDIR "/src/DM.Log.Service/." - copy image 内部文件
1
2
3
4
5
6
7FROM build AS publish
WORKDIR /app
# --from=publish : 设置从 publish image进行copy
# /app/publish : image 内部的路径 /app/publish
# . : image内部WORKDIR所在路径, /app
COPY --from=publish /app/publish .
示例
1 | #See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. |