GCP でDocker イメージを作る(tutorial のフォロー)
GCPの Cloud Build で Docker のクイックスタート をフォローしてみました。
はまりポイントのメモと、最後に結局動かせなかった、という悲しいメモです。
GCPの設定関係
以前に作成したプロジェクトは作成してあるものを確認。
$ gcloud projects list
なんだかAPIというのが分からないので作り直した。console.cloud.google.com を開きましょう。
Cloud build APIを有効に
Project を新たに作り、"Cloud Build API"を有効にします。ここでGCP プロジェクトでの API の有効化を参考にしようとしましたが、サービスとAPIが同じものを指しているのか、よく分かりませんでしたが、特に問題にはならず。
まず、Projectを選択し、「+APIとサービスを有効化」のボタンを押します。
どのサービスを有効にするかですが、検索窓でCloud Build と入力すると、Cloud Build APIを選択できます。
それで有効にすると、できたっぽいです。料金はとりあえずはかかっていなそう様子。
gcloud のupdate
$ gcloud components update
を実行しますが、権限が無いと言われる。管理者権限でpower shell を立ち上げたところ、update できたみたい。あとは
$ gcloud auth login
$ gcloud config set project \[Project ID\]
Windows でのchmod
その後、quickstart.sh と DockerFile を作成します。quickstart.sh を chmod +x しろと指示があるのですが、power shell からできません。git bash で chmod +x してもダメ。Windows だと icacls を使うようです。
> icacls quickstart.sh /grant Everyone:RX
処理ファイル: quickstart.sh
1 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした
> icacls quickstart.sh
quickstart.sh Everyone:(RX)
LAPTOP-MF1SNQEP\xapyt:(RX)
NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Administrators:(I)(F)
LAPTOP-MF1SNQEP\xapyt:(I)(F)
と出ているが、後で結局権限がないと言われました。
(追加) 別の方法として、
git add --chmod=+x -- quickstart.sh
で権限を与えたのですが、それでもだめでした。
イメージの作成
DockerFile を用いてイメージ quichstart-imnage を作ります。
$ gcloud builds submit --tag gcr.io/[PROJECT_ID]/quickstart-image .
更に、cloudbuild.yaml を作成して、こちらからもbuild してみます。
gcloud builds submit --config cloudbuild.yaml .
cloudbuild.yaml は以下のファイルです。Tutorial に書かれています。
steps:
- name: 'gcr.io/cloud-builders/docker'
args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/quickstart-image', '.' ]
images:
- 'gcr.io/$PROJECT_ID/quickstart-image'
GCPのツールにある Cloud Build で、build したものを確認できます。
GCPのツールにある Container Rgistry にはプロジェクトで作成したイメージがあります。
Docker でrun しようとしますが、先ほどのquichstart.sh で実行権限を与えていなかったので、動かず。
> docker run gcr.io/projectID/quickstart-image
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"/quickstart.sh\": permission denied": unknown.
権限についてはいろいろ試したがダメ。膨大な時間をつぎ込んだ挙句敗退。ここまででした。
イメージの削除
最後にGCPのブラウザの Container Registry でイメージを消しました。イメージ名がフォルダになっていて、中に入ると、「リポジトリ」があるので、それを「削除」します。そのフォルダの中身がなくなると、イメージ名も勝手に消えるようでした。」
参考
- icalcsコマンドを使ってファイルアクセス権限を設定する方法 :結局、私は chmod +x できなかったみたいですが。
Author And Source
この問題について(GCP でDocker イメージを作る(tutorial のフォロー)), 我々は、より多くの情報をここで見つけました https://qiita.com/XPT60/items/e4f26475eaaf7d7666ae著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .