Ruby 这段 docker-compose 有问题么?

coooldfarmer · 2022年06月07日 · 最后由 coooldfarmer 回复于 2022年06月08日 · 290 次阅读

做了 1 年 Ruby 开发,然后转了几年运营岗。绕来绕去,现在又准备继续写 Rails 了。

不知在哪看到段 docker-compose,有些问题看不明白 db 里的 volume 的宿主机的 path 不是个正确的写法吧,要么是相对路径,要么是绝对路径。但它这里是写的一个 pg_data,然后在最底部的 volumes 里又申明了 pg_data。

  1. 这样写是正确的吗?如果正确的,它的 volume 是挂载的宿主机的哪里的呢?

还有个问题是关于使用的问题,自己用 pg 的 docker 镜像的话,比如这里的 postgres:13。volume 正常映射出来,进入 docker 里改它默认的用户名(postgres),然后给它设置密码,才能正常使用。这样应该是正确的做法吧

services:
  web: &web
    container_name: 'web'
    env_file:
      - .env
    build: .
    command: bash -c bin/rails s -p 3000 -b '0.0.0.0'"
    ports:
      - "3000:3000"
    depends_on:
      - db
  db:
    container_name: 'db'
    image: postgres:13
    env_file:
      - .env
    ports:
      - "5432:5432"
    volumes:
      - pg_data:/var/lib/postgresql/data

volumes:
  pg_data:

第一个 pg_data 是指用 pg_data 这个卷对应到 db 这个容器的 /var/lib/postgresql/data;第二个 pg_date 就是声明一个卷吧,可以用 docker volume ls 查看到

这是声明一个命名 volume 让 compose 放到默认目录。

shallmentmo 回复

谢谢各位。了解了

coooldfarmer 关闭了讨论。 06月08日 09:23
需要 登录 后方可回复, 如果你还没有账号请 注册新账号