0

我刚刚尝试从 docker-compose 切换到 docker stacks/kubernetes。在 compose 中,我能够指定 postgres 数据量在哪里,并且数据保存得很好。

volumes:
- ./postgres-data:/var/lib/postgresql/data

我尝试对堆栈文件做同样的事情,我可以连接到 pod 并使用 psql 查看架构,但从 docker-compose 输入的数据都不存在。

任何想法为什么会这样?

这是stack.yml

version: '3.3'

    services:

      django:
        image: image
        build: 
          context: .
          dockerfile: docker/Dockerfile    
        deploy:
          replicas: 5
        environment:
          - DJANGO_SETTINGS_MODULE=config.settings.local
          - SECRET_KEY=password
          - NAME=postgres
          - USER=postgres
          - HOST=db
          - PASSWORD=password
          - PORT=5432
        volumes:
          - .:/application
        command: ["gunicorn", "--bind 0.0.0.0:8000", "config.wsgi"]
        ports:
          - "8000:8000"
        links:
         - db  

      db:
        image: mdillon/postgis:9.6-alpine
        volumes:
          - ./postgres-data:/var/lib/postgresql/data  
4

3 回答 3

0

你没有提到你的集群是如何配置的,它在哪里运行等等,所以我假设我们在这里讨论的是本地测试。如果是这样,您可能已经安装了本地 docker/docker-compose 和 minikube。

如果是这种情况,请注意 minikube 在它自己的 VM 中运行,因此它不会受到您通过 ie 在主机上所做的更改的影响。docker,因为它在 vm 中有自己的文件系统。

提示:如果你第一次运行,你可以针对 minikube 的 docker 守护进程运行 dockereval $(minikube docker-env)

于 2018-02-25T07:46:18.887 回答
0

在上次 Docker Edge 更新中修复。

于 2018-03-10T17:26:46.533 回答
0

对于 docker 堆栈,运行 docker inspect 命令,它应该显示 Postgres 容器的挂载点。

  docker service inspect  --format='{{range .Spec.TaskTemplate.ContainerSpec.Mounts}} {{.Source}}{{end}}'  <StackName>
于 2018-02-25T08:04:52.383 回答