Go 1.15升级至1.19
这篇文章是来自Howtelevision Advent Calendar 2022第12天的文章。
在我们经营的外资就业网站中,我们采用了Go作为后端。由于Go的版本一直停留在1.15,因此我们决定升级到1.19版本。在本文中,我打算将升级版本时所做的更改总结为备忘录。
Go语言版本升级(1.15→1.19)
首先,创建一个Dockerfile。
FROM golang:1.15.3
从
Note: The given word “から” in Japanese has various meanings depending on the context. Without further context, the most general paraphrase in Chinese would be “从.”
FROM golang:1.19.3
我已经更改了版本的指定。
如果能够仅仅通过这些来正常运行就好了,但是事情并没有那么顺利,还需要对模块进行修改。具体来说,
go getがDeprecatedされたことへの対応
go getからgo installへの変更
go.modの変更
1.16や1.17でmodule関連に変更があったらしく、go.modファイルに変更を反映させるためにgo mod tidyを行う必要がありました
我已经进行了。
CircleCI 的更改
因为我们在CI中使用了CircleCI,所以必须修改CircleCI的配置文件。
我以为只需要像Dockerfile一样更改版本指定就可以了……
Starting container circleci/golang:1.19.3
Warning: No authentication provided, using CircleCI credentials for pulls from Docker Hub.
image cache not found on this host, downloading circleci/golang:1.19.3
看起来,go:1.19似乎只有下一代镜像。
因此,可以將CircleCI的設定文件寫成這樣。
image: circleci/golang:1.15.3
從
image: cimg/go:1.19.3
尝试进行更改并再次挑战时。
ln: failed to create symbolic link '/go/src/app': No such file or directory
在配置文件中有一个命令用于创建符号链接,但是由于目录不存在,所以失败了。
根据我的调查,CicleCI的下一代镜像中的PATH似乎发生了变化。
environment:
- APP_DIR: /go/src/app
從
environment:
- APP_DIR: /home/circleci/go/src/app
通过进行更改,我们成功地执行了持续集成。
在修改CircleCI的配置文件时,我参考了以下博客:
使用下一代镜像cimg/go和circleci/go Orbs构建2020年版的CircleCI环境。
最后
在豪电视公司,我们正在寻找一位能与我们共事的工程师。