1

Dockerfile次のコマンドに相当するものをorに入れることはできないという印象を受けていますDockerfile.dev

docker run -p 5432:5432 -v /home/app/database/db-files:/var/lib/postgresql/data sockpuppet/database

ローカルポートにバインドするために使用していた-p 5432:5432ので、pgAdmin で Postgres に接続できました。これは絶対的な要件ではありませんが、あると便利です。おそらく、これを行うより良い方法がありますか?

これ-v /home/app/database/db-files:/var/lib/postgresql/dataにより、ローカル ボリュームにデータを永続化できます。

問題はEXPOSEDockerfile私が知る限り、コンテナ間のポートを開くだけです。の問題は、イメージのファイル システムを参照するだけであるということですVOLUMEDockerfile

私が理解するのに苦労しているより大きな問題は、コンテナーを実行するときに Skaffoldskaffold.yamlがこれらのDockerfile`Dockerfile.dev` を参照することです。

apiVersion: skaffold/v1beta2
kind: Config
build:
  local:
    push: false
  artifacts:
    - image: sockpuppet/client
      context: client
      docker:
        dockerfile: Dockerfile.dev
      sync:
        '**/*.js': .
        '**/*.css': .
        '**/*.html': .
    - image: sockpuppet/server
      context: server
      docker:
        dockerfile: Dockerfile.dev
      sync:
        '**/*.js': .
deploy:
  kubectl:
    manifests:
      - k8s/client-deployment.yaml
      - k8s/server-deployment.yaml
      - k8s/server-cluster-ip-service.yaml
      - k8s/client-cluster-ip-service.yaml

で指定できない場合、ポートをバインドしてボリュームをマップするにはどうすればよいDockerfileでしょうか。docker run -p 5432:5432 -v /home/app/database/db-files:/var/lib/postgresql/data ishraqiyun77/databaseDB を起動するたびに手動で実行する必要がありますか?

それが役立つ場合は、参照として使用しているレポ: https://github.com/StephenGrider/DockerCasts/tree/master/complex

4

1 に答える 1