使用Docker来配置Go和Google Cloud SDK的环境

为什么使用Docker

为了那些不想在Cloud Functions上耗费太多资源的人,我们总结了开发环境的最佳实践,最终选择了Docker。以下这篇文章可能对您有所帮助。

简单概括一下的话

    • ローカル環境を汚さなくて良い

 

    • コマンド一発で同じ環境ができるので楽

 

    Google Cloud SDK の認証情報をコンテナに閉じ込められる => 複数アカウント、プロジェクトの管理がしやすい

我认为这可能是一个合理的理由。

如果你将这篇文章简单地视为将 Node.js 中介绍的内容替换为 Go,可能会很轻松地阅读。

使用Docker Compose编写

因为我喜欢使用docker-compose进行编写,所以我会将内容放在这里。

version: "3.8"
services:
  gcloud:
    image: tktcorporation/google-cloud-sdk-golang:291.0-go1.13
    working_dir: /go/src/app
    volumes:
      - .:/go/src/app

在这篇描述中,您可以创建以下配置的容器。

PackageVersionGolang1.13Google Cloud SDK291.0

如果您想运行其他版本的Golang,请切换标签,因为图像标签适用于291.0-go1.11、291.0-go1.12和291.0-go1.13。(截至2020年5月)

Golang 的 modules 怎么使用呢?如何管理模块呢?请看这里。

准备使用 Google Cloud SDK

$ docker-compose run gcloud /bin/bash
$ gcloud auth login
...
Go to the following link in your browser:

    https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

点击以下链接:https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,
使用谷歌账户登录,
复制显示的代码,
将该代码输入到容器中。

假设这样的话,登录就完成了。

然后,进行项目设置,自由地进行工作。

如果要编写Dockerfile

我会在使用docker-compose时提到的镜像(tktcorporation/google-cloud-sdk-golang:291.0-go1.12)中也提供Dockerfile。

我认为这个功能可用于在需要更改各个软件包版本的时候。

FROM google/cloud-sdk:291.0.0

ENV GOPATH /go
ENV PATH $GOPATH/bin:/usr/local/bin:$PATH

ENV GOLANG_VERSION 1.13.1

RUN curl -Lso go.tar.gz "https://dl.google.com/go/go${GOLANG_VERSION}.linux-amd64.tar.gz" \
    && tar -C /usr/local -xzf go.tar.gz \
    && rm go.tar.gz

ENV PATH /usr/local/go/bin:$PATH
bannerAds