1

1 行だけを含む mock.Dockerfile を作成しました。

FROM eu.gcr.io/some-org/mock-service:0.2.0

その構成とビルド セクションへの参照を使用して、skaffold はプライベート GCR レジストリを使用してその dockerfile をビルドします。ただし、その Dockerfile を削除すると、skaffold はそれをビルドせず、skaffold を起動すると、そのbuildセクションで参照されているイメージのみが読み込まれます (postgres などのパブリック イメージも同様に機能します)。そのため、minikube などのローカル kubernetes 構成では、これにより

ImagePullBackOff
Failed to pull image "eu.gcr.io/some-org/mock-service:0.2.0": rpc error: code = Unknown desc = Error response from daemon: unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials 

基本的に、1 行の Dockerfile を作成してそれを含めると、skaffold はそのイメージをビルドして minikube にロードします。GCR へのリクエストが成功するように minikube 構成を変更できるようになりましたが、目標は、開発者が minikube 構成を変更する必要がないことです...

構成を変更せず、その1行のDockerfileなしで、そのイメージをMinikubeにロードする他の方法はありますか?

スカフォールド.yaml:

apiVersion: skaffold/v2beta8
kind: Config
metadata:
  name: some-service
build:
  artifacts:
    - image: eu.gcr.io/some-org/some-service
      docker:
        dockerfile: Dockerfile
    - image: eu.gcr.io/some-org/mock-service
      docker:
        dockerfile: mock.Dockerfile
  local: { }

profiles:
  - name: mock
    activation:
      - kubeContext: (minikube|kind-.*|k3d-(.*))
    deploy:
      helm:
        releases:
          - name: postgres
            chartPath: test/postgres
          - name: mock-service
            chartPath: test/mock-service
          - name: skaffold-some-service
            chartPath: helm/some-service
            artifactOverrides:
              image: eu.gcr.io/some-org/some-service
            setValues:
              serviceAccount.create: true


4

1 に答える 1