杜松子酒是什么意思
admin
2023-10-28 05:41:06

已经更新到第十三期了,基本知识点讲解的差不多了,最后一步就是部署项目了。在这里,我们将项目部署到Linux服务器Docker。本期知识点包括交叉编译和Docker部署。

交叉编译

什么是交叉编译?交叉编辑简单来说就是一个平台生成另一个平台的可执行程序。我们的开发环境大多是windows或者macOS,当然也有部分用户使用linux(其实windows上开发更推荐WSL),我们的在线服务器一般都是linux,所以需要对项目进行交叉编译。Go中的交叉编译相对简单,我们只需要做简单的设置就可以完成交叉编译。

打开我们的项目根目录,打开终端,设置GOOS和GOARCH。

编译成windows下的linux程序。

setcgo _ enabled=0 setgoos=linuxsetgoarch=amd64 gobuild-oout/Linux/gin _ hello。这里的gobuild-oout/linux/gin_hello指的是将编译后的文件输出到out/linux,编译后的二进制名为gin_hello。

我把命令写在了。蝙蝠便于处理,这样我就不用每次都贴这些线了。

在项目根目录下创建一个新的build.bat,然后执行该文件。当然,很多工程或者项目都是用Makefile编译的。

setcgo _ enabled=0 setgoos=linuxsetgoarch=amd 64 gobuild-oout/linux/gin_hello . exit文件执行后,gin _ hello会出现在out/Linux下。

这里我们完成了交叉编译,编译后的程序是linux下的可执行文件。

安装Dokcer

这里使用的操作系统是centos7。安装前,更新软件源sudoyumupdate,然后添加Docker软件源。

sudoyum-config-manager \-add-repo \ https://download.docker.com/Linux/centos/docker-ce.repo再次更新软件源码sudoyumupdate,最后我们就可以安装我们的Docker了。

Sudoyuminstalldocker-ce添加到启动

SudosystemctlenableDocker启动Docker。

Sudosystemctlstartdocker此时,我们的docker已经安装好了。但是我们还需要为我们的Docker设置一个远程连接,以便我们的本地开发人员可以连接到服务器。

警告:以下方法仅用于教程演示。请不要在生产环境中使用这种方法。这种方法存在缺陷,使得Docker端口暴露在公网环境中,任何人都可以在Docker中部署。如果需要在生产环境下打开远程端口,需要配置权限认证方式,这里我就不介绍了。

在Centos7中,编辑以下文件。

vim/usr/lib/systemd/system/docker . service找到ExecStart开头的那个,添加修改如下。

execstart=/usr/bin/Docker-htcp ://0 . 0 . 0:2375-hunix 3360//var/run/Docker . sock-HFD :/-container d=/run/container d . sock。

安装数据库

首先,我们需要在dockers上安装MySQL数据库。首先,执行我们的搜索命令,看看能否找到与MySQL相关的信息,dockersearchmysql。

确认可以找到MySQL后,就可以完成MySQL的拉取了,通过dockerpullmysql命令拉取MySQL镜像。暂时不指定MySQL版本,会为我们拉最新的MySQL版本。

拉完之后,通过dockeriamges查看当前所有的图像。我们这里只有一个MySQL。

我已经获得了MySQL映像,所以下一步是通过映像创建容器。

docker Run-p 330633603306-name MySQL-e MySQL _ root _ password=1234-dmy SQL此时我们的MySQL容器已经成功创建并启动,我们做了MySQL密码1234和端口3306。

我们为mysql指定一个终端来创建数据库。

输入mysql-uroot-p,输入密码1234进入数据库。输入createdatabaseginhello与我们本地数据库的名称一致。

这样,我们在服务器上的操作就完成了。

Goland连接Docker,并部署项目

>首先我们要对我们的代码进行简单的修改,之前我们一直是DEBUG模式在运行项目,而现在我们要正式上线了,需要修改我们的启动模式,在main.go中进行添加。

gin.SetMode(gin.ReleaseMode)

此时就可以执行我们的交叉编译时候写的脚本build.bat,会生成新的linux可执行文件。

新建Dockerfile,编写Dockerfile

FROMalpineWORKDIR/web/ginCOPY./out/linux/..CMD./gin_hello

简单的说一下这些含义,拉取一个alpine的镜像,这基本是最小的linux,指定我们的WORKDIR,将我们生成的linux可执行程序复制到WORKDIR下,运行项目。

当然这些还不够,当我们编写完成该文件的时候,在第一行会出现运行按钮。

单击运行按钮,选择Edit'Dockerfile'

会出现下面的界面。点击①处的省略号,出现旁边的界面,进行Docker的配置,在②处填写我们的IP端口为2375设置完成后,等待,看看③处是否有Connectionsuccessful。否者链接失败,查看上述步骤是否出错。完成后点击OK。

完成Docker的配置,接着完成端口映射。

Hostport表示宿主主机端口,就是我们的服务器端口,而Containerport表示我们的容器的端口。因为gin项目运行在容器内,且启动端口为8080,我们通过端口映射,访问宿主主机80端口,而映射到8080端口。

完成上述设置,就可以点击启动我们的Dockerfile。

我们可以在Goland的Service中找到当前进度。

等待完成,打开服务器公网IP。

可以看到我们之前写的代码。

此时我们就完成了部署。

✍总结

通过本章节的交叉编译,Docker安装,Docker镜像安装和启动容器,部署Gin项目,完成了一个项目通过Docker上线部署的过程。

‍本章节代码

本章节代码可以使用之前任何一个章节代码,但是这里还是进行了代码的上传,包含本章节使用的Dockerfile和build.bat

Github

相关内容

热门资讯

金花创建房间/微信金花房卡怎么... 1.微信渠道:(荣耀联盟)大厅介绍:咨询房/卡添加微信:88355042 2.微信游戏中心:打开微...
金花房间卡/金花房卡如何购买/... 金花房间卡/金花房卡如何购买/新超圣金花房卡正版如何购买新超圣是一款非常受欢迎的游戏,咨询房/卡添加...
牛牛创建房间/金花房卡批发/神... 微信游戏中心:神牛大厅房卡在哪里买打开微信,添加客服【88355042】,进入游戏中心或相关小程序,...
链接牛牛/牛牛房卡游戏代理/鸿... 鸿运大厅房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根...
科技实测!牛牛房卡怎么获得/乐... 微信游戏中心:乐酷大厅房卡在哪里买打开微信,添加客服【88355042】,进入游戏中心或相关小程序,...