gogo更新1.18版本并在docker下运行实际案例(代码片段)

小雨青年 小雨青年     2022-12-03     206

关键词:

目录

零、摘要

  • MacOS更新GO版本1.18
  • Docker下运行GO
  • 解决Docker中拉取仓库需要输入密码
  • 解决包下载连接超时
  • 解决docker-compose下command配置多行

一、查看现有版本

go version
go version go1.14.1 darwin/amd64

最新版本1.18的新特性

有必要升级到最新版本吗?

经过小范围的调查,开发者和所在技术团队对于新版本持积极的学习态度,建议升级到最新版本。

二、升级版本

1.官网下载最新版本

找到你所在的系统,下载安装即可。

安装包下载资源我已单独上传,方便各位下载。

https://download.csdn.net/download/diandianxiyu/85109596

2. 修改环境变量

在安装完成之后,go所在的位置是/usr/local/go

(base) blog.csdn.net/diandianxiyu_geek@localhost ~ % cd /usr/local/go
(base) blog.csdn.net/diandianxiyu_geek@localhost go % ls
AUTHORS		PATENTS		api		lib		test
CONTRIBUTING.md	README.md	bin		misc
CONTRIBUTORS	SECURITY.md	codereview.cfg	pkg
LICENSE		VERSION		doc		src
(base) blog.csdn.net/diandianxiyu_geek@localhost go % cat VERSION
go1.18%

添加下面到.profile

export PATH="/usr/local/go/bin:$PATH"

3. 确认版本

(base) blog.csdn.net/diandianxiyu_geek@localhost ~ % go version  
go version go1.18 darwin/amd64

三、在Docker中使用

为了方便管理不同项目的开发环境,我们使用docker-composer管理每个项目的开发环境。

以之前我发的水印为例。

首先,通过官网找到官方源https://hub.docker.com/_/golang 。

解决Docker中拉取仓库需要输入密码

我们在执行运行Docker时会遇到这样的情况,需要我们跳转到认证授权页面验证身份,这对于在Docker中执行来说显然是不可能的。

app_1  | Cloning into 'goimgtype'...
app_1  | fatal: unable to update url base from redirection:
app_1  |   asked for: https://codechina.csdn.net/diandianxiyu/goimgtype/info/refs?service=git-upload-pack
app_1  |    redirect: https://passport.csdn.net/login?code=applets

在项目中,有个部署密钥的配置,可以配置给CI使用的密钥。

部署密钥允许只读或读写(如果启用)访问你的仓库。 部署密钥可以用于CI, 预发布或生产服务器。你可以创建一个部署密钥或添加一个现有密钥

(base) blog.csdn.net/diandianxiyu_geek@localhost ~ % ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/xiaoyu/.ssh/id_ed25519): 
/Users/xiaoyu/.ssh/id_ed25519 already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/xiaoyu/.ssh/id_ed25519
Your public key has been saved in /Users/xiaoyu/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:Cr7PrncZ6+GAl49NC5hDGBcGumT2Draue0BskQstYc0 xiaoyu@localhost
The key's randomart image is:
然后复制到剪贴板
pbcopy < ~/.ssh/id_ed25519.pub 

再把生成的对应的私钥放在项目中。

解决包下载连接超时

修改配置的GOPROXY

go env -w GOPROXY=https://goproxy.cn,direct

docker-compose.yml

注意的是,需要根据自己的实际情况修改配置。

version: '3'
services:
  app:
    image: golang:1.18
    volumes:
      - $PWD:/go/src/watermark
    command:
      - sh
      - -c
      - |
          eval `ssh-agent -s`
          ssh-add /go/src/watermark/id_ed25519
          go env -w GOPROXY=https://goproxy.cn,direct
          cd /go/src/watermark
          go get -t -v github.com/golang/freetype
          go get -t -v gitcode.net/diandianxiyu/goimgtype
          go run /go/src/watermark/main.go

运行docker-compose up即可执行。

(base) blog.csdn.net/diandianxiyu_geek@localhost watermark % docker-compose up
Recreating watermark_app_1 ... done
Attaching to watermark_app_1
app_1  | Agent pid 9
app_1  | Identity added: /go/src/watermark/id_ed25519 (xiaoyu@localhost)
app_1  | go: downloading github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0
app_1  | go: downloading golang.org/x/image v0.0.0-20220412021310-99f80d0ecbab
app_1  | go: downloading gitcode.net/diandianxiyu/goimgtype v1.0.0
app_1  | go: downloading github.com/shamsher31/goimgext v1.0.0
watermark_app_1 exited with code 0

四、总结

GO语言相关的生产环境相比其他语言更敢于使用新版本,并拥抱新变化,不像是万年的Java8。

从gogos迁移到gitea(代码片段)

...部署很方便选择了它,但是因为最近gogos已经有段时间不更新了,使用过程中发现很多想要功能都没有,用起来很不方便。最近发现还有gitea这么个项目,是gogos的分支,更新一直很活跃,并且还支持从gogos迁移,所以准备更换一... 查看详情

动手搭建docker并在docker容器中建spark集群(代码片段)

...ntOS系统内核版本高于3.102.使用root权限登陆Centos,确保yum包更新到最新命令:yumupdate3.如果有安装旧版本先卸载旧的docker命令:yumremovedockerdocker-commondocker-selinuxdocker-engine4.安装需要的软件包(或叫依赖包)命令:yuminstall-yyum-utilsdevice-ma 查看详情

如何在 WSL 2 下运行 docker-compose

...装WSL2(确保满足所有先决条件);安装DockerDesktop2.2.0或更新版本;在Docker设置>常规中启用“在没有TLS的情况下在t 查看详情

ubuntu16怎么安装docker

...之前使用APT安装过docker,为了新版本的docker仓库,确保你更新了APT源。3.更新你的apt源Docker的APT仓库包含1.7.1以及更高的版本。通过设置APT使用来自docker仓库的包。1)登陆机器,用户必须使用sudo或者root权限。2)打开终端3)更新包信... 查看详情

有新镜像版本时如何更新 Docker 镜像?

】有新镜像版本时如何更新Docker镜像?【英文标题】:HowtoupdateDockerimagewhenthereisnewimageversion?【发布时间】:2015-07-1406:03:57【问题描述】:我目前正在运行官方的ghostDocker镜像,并使用该镜像构建多个容器。如果我想更新我的Docker... 查看详情

centos6.5下docker环境搭建

...m(3.10.28)这2个内核版本,考虑到long-term更稳定,会长期更新,所以选择这个版本。1、查看当前版本:[[email protected]~]#mo 查看详情

docker安装和部署(代码片段)

...ckerdeskforwindows,安装会检测Window10版本和WSL版本,更新最新Window10版本,下载WSL2就行。安装完成后,打开Poweshell,运行dockerrunhello-world。如果出现unabletofindimage“hello-world”...,表示安装已成功&#x 查看详情

如何修复错误:断言错误:应该在更新模式下运行 [预期 => 假 == 真 <= 实际]

】如何修复错误:断言错误:应该在更新模式下运行[预期=>假==真<=实际]【英文标题】:howtofixError:ASSERTIONERROR:Shouldberuninupdatemode[Expected=>false==true<=Actual]【发布时间】:2021-04-1901:34:57【问题描述】:我正在用ChangeDetectorRef... 查看详情

docker支持centos6系统吗?

...支持CentOS6系统,因为CentOS6已经过时,已经不再接受安全更新和维护。从Docker20.10版本开始,Docker官方已经不再支持CentOS6系统,因此如果您使用的是CentOS6系统,则无法安装和运行Docker。如果您仍然需要在CentOS6系统中运行Docker,... 查看详情

javashop7.0前后端代码更新发布方法

本文仅适合Javashop7.0版本需求:修改商城代码之后,如何更新前后端代码基础工具:SSH 工具如puttySSHFtp工具如FileZilla注:怎么通过FTP、SSH上传文件、Linux命令使用本文不再具体叙述假定目标服务器目录:/opt/luozhuang/假定安装存... 查看详情

Delphi:如何确定应用程序是不是在 Win32 / Win64 下运行并在 64 位上自动启动 64 位版本?

...应用程序是不是在Win32/Win64下运行并在64位上自动启动64位版本?【英文标题】:Delphi:HowtodetermineifanapplicationisrunningunderWin32/Win64andlaunchthe64-bitversionautomaticallyifon64-bit?Delphi:如何确定应用程序是否在Win32/Win64下运行并在64位上自动启... 查看详情

让 Shiny 更新 ui 并在之后运行长时间计算

】让Shiny更新ui并在之后运行长时间计算【英文标题】:GettingShinytoupdatetheuiandandrunlongcalculationafterwards【发布时间】:2016-03-1713:23:52【问题描述】:我一直在尝试实现一个简单的界面来在Shiny上运行R脚本。我希望我的启动应用程序... 查看详情

GKE 1.18 中未使用启动探针

...205:27:50【问题描述】:我最近将我们项目中使用的GKE集群更新到版本1.18.16-gke.1200。我们一直期待的功能之一是启动探测。根据overviewoffeaturegatesonKubernetes\'site的说法,启动探针在Kubernetes1.18版本中进入了Beta阶段,应该 查看详情

elasticsearch:如何在docker上运行elasticsearch8.x进行本地开发(代码片段)

...(8.x.x),有关于在Docker上运行Elasticsearch和Kibana的重大更新。过去适用于以前版本的Docker和DockerCompose的命令和语法需要更新才能适用于最新版本。在这篇文章中,我们将介绍如何使用Docker和DockerCompose启动Elasticsearch(8.6.... 查看详情

检查图像的更新 Docker 构建 [重复]

】检查图像的更新Docker构建[重复]【英文标题】:CheckfornewerDockerbuildforimage[duplicate]【发布时间】:2018-04-2919:53:18【问题描述】:我正在从Docker运行带有标签lts的Jenkins。这个标签后面是版本2.73.2。现在有一个更新的lts版本可用:2.... 查看详情

centos7安装与卸载docker虚拟化容器(代码片段)

...插件等。社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。一、安装Docker  本文将以Windows作为基础开发环境,为了更快捷的使用Linux操作系统,我将使用Oracle的Vi... 查看详情

如何在不丢失 docker 数据的情况下更新 prometheus 配置文件

】如何在不丢失docker数据的情况下更新prometheus配置文件【英文标题】:HowIcanupdateprometheusconfigfilewithoutlosingdataondocker【发布时间】:2021-08-1922:49:45【问题描述】:我有一个运行prometheus的docker容器,有时我必须更新容器内的配置文... 查看详情

docker数据卷

...将会从读写层下面的只读层复制到读写层,该文件的只读版本仍然存在,只是已经被读写层中该文件的副本所隐藏。当删除Do 查看详情