范例 Dockerfile:
本文皆以此Dockerfile做范例
FROM golang:latest
WORKDIR /project_name
COPY . .
RUN go mod download
RUN go build -o main .
EXPOSE 3000
CMD ["./main"]
第一行:
指定基底image
这里指定的是golang官方的最新image
FROM golang:latest
第二行:
指定项目文件夹
也就是整个项目的根目录
WORKDIR /project_name
第三行:
将项目内所有程式码复制到docker根目录
COPY . .
第四行
RUN用于执行指令
这里按照go.mod
安裝项目所需套件
RUN go mod download
第五行
RUN用于执行指令
将项目编译成可记性文件
RUN go build -o main .
第六行
指定项目对外port号
记得要和项目內所指定的port号一样
EXPOSE 3000
第七行
执行已编译好的2进制文件
CMD ["./main"]
Build & Run Container
Build:
用上面所写的Dockerfile
build一个叫做user_name/project_name的image
docker build -t user_name/project_name .
Run:
按照刚刚bulid好的image
run一个container
并且将port号绑定本机的port号
docker run --rm -d -p 3000:3000 user_name/project_name