将Go应用通过docker发布到服务器上
将Go应用程序使用docker发布到服务器上
1. 在本地项目的根目录下创建一个 Dockerfile 文件,用于构建自定义的 Go 镜像
FROM golang:alpine
# 移动到工作目录:/app
WORKDIR /app
# 将代码复制到容器中
COPY . .
# 构建应用程序,指定生成的可执行文件的名称为 app
RUN go build -o app .
# 声明服务端口
EXPOSE 8032
# 启动容器时运行的命令
CMD ["./app"]
知识储备:
我们使用基础镜像golang:alpine。这是存储在Docker仓库的基础镜像,这个镜像运行的是alpine Linux发行版,该发行版的大小很小并且内置了Go,非常适合用例
2. 根目录中创建一个名为 .dockerignore 的文件
例如:
# 忽略版本控制系统文件
.git
.svn
# 忽略构建输出文件
*.exe
*.exe~
*.dll
*.so
*.dylib
# 忽略日志文件
*.log
# 忽略临时文件
tmp/
temp/
3. 构建自定义的 Go 镜像
docker build -t my-go-app .
my-go-app 是镜像的名字
4. 运行容器并将应用程序的端口映射到服务器的端口
docker run -d -p 8032:8032 --name my-app my-go-app
my-app 是容器的名字,my-go-app是上面自定义的镜像名字
该命令将镜像关联到容器,并启动容器运行
现在,你的 Go 应用程序将在容器中运行,并通过服务器的端口 8032 对外提供服务。你可以根据需要将服务器的端口映射到其他端口。
注意:在构建 Docker 镜像时,确保 Dockerfile 文件位于应用程序的根目录中,并且应用程序的代码和依赖项都被正确地复制到容器中。另外,根据你的应用程序需要,可能需要在 Dockerfile 中添加其他配置,例如处理环境变量、安装依赖项等。
5. 将 Docker 镜像保存为 tar 归档文件
docker save -o my-go-app.tar my-go-app
6. 将 my-go-app.tar 文件上传到目标 Linux 服务器
scp -r my-go-app.tar root@server_ip:/mnt/
7. 在 Linux 服务器上,使用以下命令加载 Docker 镜像
docker load -i my-go-app.tar
8. 在 Linux 服务器上,使用以下命令运行 Docker 容器
docker run -d -p 10010:8032 --name my-app my-go-app
现在,你可以通过访问server_ip:端口来访问对应的服务。
(以上资料内容侵删) 转载时请告知(以上资料内容侵删) 每个人都知道的,哪怕已经很糟糕了但是努力生活依旧很重要。