一个简单的 dockerfile 示例

# 基于golang最新版本的镜像
FROM golang:latest

# 设置维护者标签
LABEL maintainer="xxx@gmail.com"

# 将当前目录下的所有文件拷贝到容器的/app目录下
COPY ./ /app

# 下载 + 拷贝远程文件到容器的/app目录下
# ADD https://xxx.yyy.zzz/abc.tar.gz /app

# 设置工作目录
WORKDIR /app

# 设置环境变量
# ENV APP_HOME=/usr/src/app

# 创建一个挂载点,用于持久化和共享数据
# VOLUME ["/data"]
 
# 指定容器运行时的用户,容器默认以 root 用户运行
# USER root

# 定义构建时要使用到的临时参数,构建完成后无效
# ARG VERSION=1.0

# 在工作目录下运行命令
RUN go mod download
RUN go build -o main .

# 将容器内部的8020端口暴露出来,外部可以访问这个端口
EXPOSE 8020

# 定义容器健康检查,允许 Docker 监测容器的健康状况,并根据健康检查的结果决定是否重启容器
# HEALTHCHECK CMD curl --fail http://localhost:8080 || exit 1

# 指定容器启动时默认运行的命令(可以被运行时单独指定的命令或参数覆盖)
# CMD ["go run", "main.go"]

# 也可以使用 ENTRYPOINT 指令来指定容器的入口点(不会被运行时单独指定的命令或参数覆盖)
# ENTRYPOINT ["go run"]     # 用于定义执行的命令
# CMD ["main.go"]           # 用于定义执行的参数
ENTRYPOINT [ "./main" ]

# 如何使用这个Dockerfile    
# docker build -t my-app .
# docker run -d -p 8020:8020 my-app

# 后记:以上方法比较繁琐,下一阶段将使用docker-compose来简化这个过程
posted @ 2025-03-14 21:42  江南烟雨梦  阅读(45)  评论(0)    收藏  举报