Docker | 基于Centos镜像的GoWeb部署

本文介绍了如何使用Docker基于CentOS镜像部署GoWeb项目。首先,通过Dockerfile创建包含Git、gcc-c++等工具的基础镜像。然后,拉取项目代码并构建镜像。接着,生成容器并进入,使用nohup在后台运行程序。最后,讲解了编写运行脚本.sh的方法,实现自动化部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0. 背景

最开始GoWeb部署是基于基础镜像golang:alpine来创建我们的镜像,并将我们的程序代码COPY到容器里并打包运行,这种方式虽然能快速的部署一个GoWeb项目,但是后期项目维护并不友好,需要我们频繁的执行Dockerfile。

这里能我推荐使用基于基础镜像centos来创建我们的镜像。使用centos环境主要是为了可以安装以上的各种环境,方便后期可以安装其余所需要的环境。

部署流程简要概括

  • linux上提前下载好Git,方便项目的第一次clone
  • 在linux服务器上使用git拉取项目代码(使用Http连接下载)
  • 项目根目录下编写Dockerfile文件
  • 初始化Docker镜像和容器,以及完成自动化部署
  • 进入容器打包运行程序

后需实时部署

  • 在橡木容器中使用git拉取项目代码
  • 重新打包并运行程序

1. Dockerfile生成基础镜像

FROM centos:7
RUN yum -y update \
    && yum -y install vim \
    && yum -y install git \
    && yum install -y gcc-c++ \
    && yum -y install wget\
    && wget -P /root/ https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz \
    && tar -zxvf /root/go1.14.1.linux-amd64.tar.gz -C /usr/local \
    && echo export PATH=$PATH:/usr/local/go/bin >> /etc/profile \
    && source /etc/profile && go version \
    && echo "source /etc/profile" >> /root/.bashrc \
    && go env -w GOPROXY=https://goproxy.cn,direct \
    && go env -w GO111MODULE=on \
  • vim 可以方便编辑文件。
  • git 主要是为了可能在GitLab、GitHub、Gitee上可以随时拉去最新的项目,进行合作开发,实时部署。
  • gcc-c++ 编译器,编译程序为二进制文件
  • wget 下载go压缩包
  • 安装go环境并配置GOPROXY设置go mod
1.1 build生成镜像
docker build . -t $IMAGE_NAME
  • IMAGE_NAME:生成的镜像名

2. 生成容器

运行基础镜像生成项目对应的容器

docker run -e TZ="Asia/Shanghai" -id --name $CONTAINER_NAME -v $PROJECT_PWD:/project/$PROJECT_NAME $IMAGE_NAME
  • CONTAINER_NAME :容器名
  • PROJECT_PWD:项目在服务器上的路径
  • PROJECT_NAME :项目在容器中的项目目录名
  • IMAGE_NAME:镜像名

3. 进入容器

<
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值