终于成功了,生产服务器 docker 部署 golang 服务」的摘要信息

摸索了半天,终于在十一长假之前把线上服务器 docker 部署 golang 服务搞定了。 ❓ 为何要用 docker 部署 golang 服务 因为 golang 以部署便捷著称,编译之后只有一个二进制可执行文件,扔到服务器上就能跑。不需要多余的操作。 而不像 .NET 的 AOT,还需要编译环境跟部署环境系统版本号一致。连交叉编译都不支持。 这么看,完全没有必要使用 docker。 但是,由于生产环境之前为了部署多版本的 PHP,把 MySQL 等服务都放到了 Docker 中。 于是要让 golang 服务器能正常访问 MySQL,也得把 golang 服务部署到跟 MySQL 相同的 docker 网络组里。 蛋疼。。。我从心底不想这样搞,因为正常在 Linux 系统里部署,5 分钟就搞定了,这用上 docker,加之不熟悉,搞了一个小时愣是没有搞定。 正确的配置 先上可以运行的配置吧,先不讲心路历程了。也方便以后复制配置。 直接使用 docker-compose.yml, 而不需要使用 Dockerfile services: goapp: #image: alpine:3.20.3 image: m.daocloud.io/docker.io/alpine:3.20.3 ports: - "8000:8000" volumes: - /var/www/goapp:/app command: /app/goapp 例如,线上把 golang 编译好的文件及配置文件放到 /var/www/goapp 即可。 然后参考上面配置把这个目录映射到 docker 里的 /app 目录。 启动容器,并查看是否运行正常: docker compose up -d goapp docker compose ps...