前面的系列文章我们已经完成了go web的基础框架搭建,这里我们演示下如何把当前go程序打包到docker镜像里面运行,下面直接开始。
1、上传项目到服务器
首先我们把前面编写的项目上传都服务器上,放到/mnt目录下:
备注:这里我们上传的是源码,不是在goland里面打包好的应用程序。
二、创建dockerfile
接下来我们进入到/mnt/awesomeProject目录下创建Dockerfile文件,具体的内容如下:
# Use the official Golang image as the base FROM golang:1.23 # Set the working directory inside the container WORKDIR /app # Copy the Go application code to the container COPY . . # Build the Go application RUN go build -o app main.go # Expose the port on which the app will run EXPOSE 48080 # Run the app CMD ["./app"]
备注,上诉Dockerfile的内容示例如下:
FROM:指定基础镜像。这里我们使用官方的 Golang 1.19 镜像。 WORKDIR:设置容器内的工作目录为 /app。 COPY:将主机当前目录下的文件复制到容器的 /app 目录。 RUN:使用 go build -o app main.go 构建应用程序。 EXPOSE:暴露应用程序运行的 48080 端口。 CMD:指定容器启动时运行的命令。
三、执行打包
接下来我们执行docker打包命令,打docker镜像。当前的打包命令是:
docker build -t go_doker_app .
上诉命令是代表在当前目录使用docker镜像打包,打包镜像名称为go_docker_app。
当出现下面的界面后,就代表打包成功了:
备注:
1、这里打包的时候会自动去下载go的依赖,由于被墙的原因,所以这里我演示的时候使用的是临时的香港服务器进行打包演示。
打包完成之后,我们可以看到docker镜像内有刚才的镜像了:
四、运行docker
接下来就是运行docker了,使用如下的命令运行:
docker run --name godemo -p 48080:48080 -d go_doker_app
可以运行,日志打印也是正常的
以上就是演示把go web程序打包到docker里面运行的案例。由于临时找的服务器打包,没有安装数据库所以没法进行测试验证。并且这里还可以设置一些logs文件夹映射到主机上等,大家可以多发挥下。
还没有评论,来说两句吧...