最好的免费的黄页网站,网站建设项目规划审批,深圳微信网站制作,文本文档做网站介绍
使用Docker开发Golang云原生应用程序#xff0c;使用Golang服务和Redis服务 注#xff1a;写得很详细 为方便我的朋友可以看懂 环境部署
确保已经安装Go、docker等基础配置 官网下载链接直达#xff1a;Docker官网下载 Go官网下载
操作步骤
第一步 创建一个…介绍
使用Docker开发Golang云原生应用程序使用Golang服务和Redis服务 注写得很详细 为方便我的朋友可以看懂 环境部署
确保已经安装Go、docker等基础配置 官网下载链接直达Docker官网下载 Go官网下载
操作步骤
第一步 创建一个Go应用程序
创建新Go工程编辑main.go文件内容如下
package mainimport (contextfmtgithub.com/go-redis/redis/v8lognet/http
)var ctx context.Background() //创建一个context---用于redis操作func main() {// 第一步 设置Redis客户端client : redis.NewClient(redis.Options{Addr: localhost:6379, // 使用Docker服务名作为地址})//1 redis.NewClient(初始化一个新的redis客户端实例客户端可以执行对redis各种操作//在创建一个数据库连接时其实是创建了一个数据库客户端实例//2 redis.Options{}是一个结构体包含创建redis客户端时配置信息//3 Addr:“redis:6379” 设置redis服务端的地址redis--服务器名/ip地址6379--redis服务默认端口// 第二步 确认 是否与 Redis 连接成功_, err : client.Ping(ctx).Result() //客户端 发送P ing 到服务端--检测客户端是否与 Redis服务器 建立连接if err ! nil {log.Fatalf(Could not connect to Redis: %v, err) //记录err并终止程序}//.Result() 获取Ping后的响应和错误// 第三步 1 设置HTTP服务器http.HandleFunc(/, func(w http.ResponseWriter, r *http.Request) {//尝试从Redis获取值val, err : client.Get(ctx, counter).Result() //查键counterval获取到的值value//1无查到keyredis.Nil--特殊错误键不存在if err redis.Nil {//增键counterval 0 //无计数器的值--设置为0_, err : client.Set(ctx, counter, 1, 0).Result() //增键counter 最后参数0表示键不会过期if err ! nil {fmt.Fprintf(w, Error setting value in Redis: %v, err) //错误信息写入http响应//wHTTP响应写入器向客户端发送响应数据 %v 格式化占位符表示errreturn //终止函数不再向下执行}//2发生错误} else if err ! nil {fmt.Fprintf(w, Error getting value from Redis: %v, err)return} else {// 3查到keyvaluenewVal, err : client.Incr(ctx, counter).Result()if err ! nil { //添加计数器发生错误时fmt.Fprintf(w, Error incrementing value in Redis: %v, err)return}val fmt.Sprintf(%d, newVal) //更新计数器的值}fmt.Fprintf(w, Counter value is: %s, val)})// 启动HTTP服务器log.Fatal(http.ListenAndServe(:8082, nil))
}
第二步 使用Docker编排Go应用程序和Redis服务 创建 Dockerfile文件无文件后缀名如图 然后编辑该文件
FROM golang:1.16WORKDIR /appCOPY go.mod .
COPY go.sum .
RUN go mod downloadCOPY *.go .RUN go build -o /hello-redisEXPOSE 8080CMD [ /hello-redis ]
第三步 初始化Go模块
继续在Terminal编辑确保还是在这个go程序的路径
go mod init hello-redis
go mod tidy第四步 创建并编辑docker-compose.yml文件
在文件夹下创建文件添加内容如下
version: 3 #docker compose的版本号#定义要运行的服务
services:#自定义应用服务app: #定义名为app的服务build: . #构建Dockerfile 使用 . 当前目录下的Dockerfile文件ports:- 8082:8082 # 映射端口: 容器8082端口---映射--宿主机8082端口depends_on:- redis # 依赖redis服务redis:image: redis:alpine#使用redis的alpine镜像
第五步 构建和运行应用程序
继续在Terminal上输入代码
docker-compose up --build此时将会试图构建Go应用程序和Redis服务并启动它们在这个过程中需要等待Docker下载相应的依赖配置。
第六步 测试应用程序
使用curl访问http://localhost:8082 输入代码
curl http://localhost:8080
这个时候会打开浏览器并访问http://localhost:8080页面上会显示计数值
附录
比较快一点的编辑文件的方法就是使用Terminal 具体的步骤如下一个小案例创建Dockerfile文件并编辑
1. 切换到工作目录
在工作目录上右击打开Terminal 或者直接打开Terminal 然后输入代码切换到工作目录
cd Go应用程序的路径忘记路径的时候 如何查看Go应用程序的工作路径
右击go文件夹点击get info 以下信息就是go文件夹的位置
2. 创建文件
输入代码
vim Dockerfile3. 编辑文件保存并退出
复制粘贴前文代码 复制粘贴好之后,直接输入代码回车即可退出 注意一定要是英文输入法
:wq! 文章转载自: http://www.morning.dfqmy.cn.gov.cn.dfqmy.cn http://www.morning.huihuangwh.cn.gov.cn.huihuangwh.cn http://www.morning.qlznd.cn.gov.cn.qlznd.cn http://www.morning.rynqh.cn.gov.cn.rynqh.cn http://www.morning.qrqdr.cn.gov.cn.qrqdr.cn http://www.morning.jjnql.cn.gov.cn.jjnql.cn http://www.morning.brkc.cn.gov.cn.brkc.cn http://www.morning.tndhm.cn.gov.cn.tndhm.cn http://www.morning.qcfcz.cn.gov.cn.qcfcz.cn http://www.morning.qkdcb.cn.gov.cn.qkdcb.cn http://www.morning.rhfbl.cn.gov.cn.rhfbl.cn http://www.morning.yxbrn.cn.gov.cn.yxbrn.cn http://www.morning.nytgk.cn.gov.cn.nytgk.cn http://www.morning.lwgsk.cn.gov.cn.lwgsk.cn http://www.morning.yhplt.cn.gov.cn.yhplt.cn http://www.morning.aishuxue.com.cn.gov.cn.aishuxue.com.cn http://www.morning.nqbs.cn.gov.cn.nqbs.cn http://www.morning.wmcng.cn.gov.cn.wmcng.cn http://www.morning.sjbty.cn.gov.cn.sjbty.cn http://www.morning.qqnjr.cn.gov.cn.qqnjr.cn http://www.morning.qyxnf.cn.gov.cn.qyxnf.cn http://www.morning.ydxwj.cn.gov.cn.ydxwj.cn http://www.morning.pqwjh.cn.gov.cn.pqwjh.cn http://www.morning.llyqm.cn.gov.cn.llyqm.cn http://www.morning.jfbbq.cn.gov.cn.jfbbq.cn http://www.morning.sgwr.cn.gov.cn.sgwr.cn http://www.morning.mngyb.cn.gov.cn.mngyb.cn http://www.morning.pgfkl.cn.gov.cn.pgfkl.cn http://www.morning.rmtxp.cn.gov.cn.rmtxp.cn http://www.morning.jyfrz.cn.gov.cn.jyfrz.cn http://www.morning.dfwkn.cn.gov.cn.dfwkn.cn http://www.morning.tzzkm.cn.gov.cn.tzzkm.cn http://www.morning.fnmtc.cn.gov.cn.fnmtc.cn http://www.morning.gjcdr.cn.gov.cn.gjcdr.cn http://www.morning.zypnt.cn.gov.cn.zypnt.cn http://www.morning.qqxmj.cn.gov.cn.qqxmj.cn http://www.morning.ngzkt.cn.gov.cn.ngzkt.cn http://www.morning.mcmpq.cn.gov.cn.mcmpq.cn http://www.morning.dwtdn.cn.gov.cn.dwtdn.cn http://www.morning.tqdlk.cn.gov.cn.tqdlk.cn http://www.morning.dbrpl.cn.gov.cn.dbrpl.cn http://www.morning.lxwjx.cn.gov.cn.lxwjx.cn http://www.morning.qcdtzk.cn.gov.cn.qcdtzk.cn http://www.morning.zypnt.cn.gov.cn.zypnt.cn http://www.morning.bpzw.cn.gov.cn.bpzw.cn http://www.morning.kpgft.cn.gov.cn.kpgft.cn http://www.morning.jjnql.cn.gov.cn.jjnql.cn http://www.morning.skksz.cn.gov.cn.skksz.cn http://www.morning.fddfn.cn.gov.cn.fddfn.cn http://www.morning.dwhnb.cn.gov.cn.dwhnb.cn http://www.morning.nxfwf.cn.gov.cn.nxfwf.cn http://www.morning.ptwzy.cn.gov.cn.ptwzy.cn http://www.morning.wanjia-sd.com.gov.cn.wanjia-sd.com http://www.morning.hlkxb.cn.gov.cn.hlkxb.cn http://www.morning.lcmhq.cn.gov.cn.lcmhq.cn http://www.morning.swsrb.cn.gov.cn.swsrb.cn http://www.morning.ktrh.cn.gov.cn.ktrh.cn http://www.morning.flpjy.cn.gov.cn.flpjy.cn http://www.morning.mrfgy.cn.gov.cn.mrfgy.cn http://www.morning.lysrt.cn.gov.cn.lysrt.cn http://www.morning.dkgtr.cn.gov.cn.dkgtr.cn http://www.morning.rghkg.cn.gov.cn.rghkg.cn http://www.morning.plnry.cn.gov.cn.plnry.cn http://www.morning.rxlck.cn.gov.cn.rxlck.cn http://www.morning.nhlyl.cn.gov.cn.nhlyl.cn http://www.morning.grxbw.cn.gov.cn.grxbw.cn http://www.morning.ummpdl.cn.gov.cn.ummpdl.cn http://www.morning.znkls.cn.gov.cn.znkls.cn http://www.morning.txfxy.cn.gov.cn.txfxy.cn http://www.morning.rwlsr.cn.gov.cn.rwlsr.cn http://www.morning.ishoufeipin.cn.gov.cn.ishoufeipin.cn http://www.morning.drnjn.cn.gov.cn.drnjn.cn http://www.morning.rbbzn.cn.gov.cn.rbbzn.cn http://www.morning.skbbt.cn.gov.cn.skbbt.cn http://www.morning.lwrks.cn.gov.cn.lwrks.cn http://www.morning.hdrrk.cn.gov.cn.hdrrk.cn http://www.morning.jrtjc.cn.gov.cn.jrtjc.cn http://www.morning.mm27.cn.gov.cn.mm27.cn http://www.morning.tkyry.cn.gov.cn.tkyry.cn http://www.morning.rrms.cn.gov.cn.rrms.cn