原csdn地址https://blog.csdn.ne|

蜗牛使劲冲

园龄:7年6个月粉丝:3关注:10

使用Dockerfile部署go项目

继上回本地搭建go的开发环境文章后再更新一版服务器使用docker部署go的运行环境

主旨就是先拉代码,再生成go的二进制文件,删旧容器和镜像,再起Dockerfile的容器并执行,暴露端口号,复制二进制文件到容器中运行

Dockerfile文件如下

FROM golang:latest
USER root
# 为我们的镜像设置必要的环境变量
ENV GO111MODULE=on \
    GOPROXY=https://goproxy.cn,direct \
    CGO_ENABLED=0 \
    GOOS=linux \
    GOARCH=amd64

# 移动到工作目录:/build
#WORKDIR /build

# 将代码复制到容器中
#COPY . .

# 将我们的代码编译成二进制可执行文件app
#RUN go build -o app .

# 移动到用于存放生成的二进制文件的 /dist 目录
WORKDIR /app
#RUN apk add bash
# 将二进制文件从 /build 目录复制到这里
COPY .env /app
COPY ./main-dev /app


#ADD ./main-dev  $WORKDIR/main-dev
#RUN chmod +x $WORKDIR/main-dev


# 声明服务端口
EXPOSE 13001

# 启动容器时运行的命令
CMD ["./main-dev"]
#ENTRYPOINT ["./main-dev"]

step.sh文件如下

#!/bin/bash
git pull
docker stop go-container
docker rm go-container
docker rmi go-image
go build -o main-dev
docker build . -t go-image
docker run -dit --name go-container --privileged=true -p 13001:13001 go-image

执行后成功运行,如图

#总结

一直卡在当在Dockerfile把二进制文件复制到容器里面,然后到容器里面也看到了,但是在容器里面执行却报not found,很郁闷,能cat看到里面的乱码,du -h ./也能看到这个文件20m,但就是执行显示404,chatgpt也帮我涨不到原因,换了其他的apline镜像还是报那个,耗了很长时间最后尝试用了其他镜像,如上面Dockerfile里面写的,竟然成功了。中间还曾尝试用别人的方式把代码拷到容器里面再打包,但是跟我以后使用jenkins方式不兼容,还是照着我这样的方式进行吧,最后可以了,特记录下。

本文作者:蜗牛使劲冲

本文链接:https://www.cnblogs.com/warrenwt/p/18220637

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   蜗牛使劲冲  阅读(289)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起