docker nginx letsencrypt odoo error

时间:2017-12-14 12:10:51

标签: postgresql docker nginx openerp lets-encrypt

我发现这个repository在docker中创建了我的所有实例。但是,经过一些测试,我总是有

version: "2"

services:
  nginx:
    restart: always
    image: nginx
    container_name: nginx
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/etc/nginx/conf.d"
      - "/etc/nginx/vhost.d"
      - "/usr/share/nginx/html"
      - "./volumes/proxy/certs:/etc/nginx/certs:ro"

  nginx-gen:
    restart: always
    image: jwilder/docker-gen
    container_name: nginx-gen
    volumes:
      - "/var/run/docker.sock:/tmp/docker.sock:ro"
      - "./volumes/proxy/templates/nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro"
    volumes_from:
      - nginx
    entrypoint: /usr/local/bin/docker-gen -notify-sighup nginx -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf

  letsencrypt-nginx-proxy-companion:
    restart: always
    image: jrcs/letsencrypt-nginx-proxy-companion
    container_name: letsencrypt-nginx-proxy-companion
    volumes_from:
      - nginx
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "./volumes/proxy/certs:/etc/nginx/certs:rw"
    environment:
      - NGINX_DOCKER_GEN_CONTAINER=nginx-gen

  web:
    restart: always
    image: odoo:11
    container_name: odoo
    depends_on:
      - db
    ports:
      - "8069:8069"
    volumes:
      - odoo-web-data:/var/lib/odoo
      - ./config:/etc/odoo
      - ./addons:/mnt/extra-addons
    environment:
      - VIRTUAL_HOST=web04.talk.mg
      - VIRTUAL_NETWORK=nginx-proxy
      - VIRTUAL_PORT=8069
      - LETSENCRYPT_HOST=web04.talk.mg
      - LETSENCRYPT_EMAIL=toavina@nivo.mg
  db:
    restart: always
    image: postgres:9.4
    container_name: db
    environment:
      - POSTGRES_PASSWORD=odoo
      - POSTGRES_USER=odoo
      - PGDATA=/var/lib/postgresql/data/pgdata
    volumes:
      - odoo-db-data:/var/lib/postgresql/data/pgdata
volumes:
  odoo-web-data:
  odoo-db-data:

我的docker-compose就像在git仓库中一样

File "/usr/lib/python3/dist-packages/odoo/http.py", line 1438, in dispatch
odoo                                 |     self.setup_db(httprequest)
odoo                                 |   File "/usr/lib/python3/dist-packages/odoo/http.py", line 1359, in setup_db
odoo                                 |     httprequest.session.db = db_monodb(httprequest)
odoo                                 |   File "/usr/lib/python3/dist-packages/odoo/http.py", line 1521, in db_monodb
odoo                                 |     dbs = db_list(True, httprequest)
odoo                                 |   File "/usr/lib/python3/dist-packages/odoo/http.py", line 1489, in db_list
odoo                                 |     dbs = odoo.service.db.list_dbs(force)
odoo                                 |   File "/usr/lib/python3/dist-packages/odoo/service/db.py", line 362, in list_dbs
odoo                                 |     with closing(db.cursor()) as cr:
odoo                                 |   File "/usr/lib/python3/dist-packages/odoo/sql_db.py", line 634, in cursor
odoo                                 |     return Cursor(self.__pool, self.dbname, self.dsn, serialized=serialized)
odoo                                 |   File "/usr/lib/python3/dist-packages/odoo/sql_db.py", line 178, in __init__
odoo                                 |     self._cnx = pool.borrow(dsn)
odoo                                 |   File "/usr/lib/python3/dist-packages/odoo/sql_db.py", line 517, in _locked
odoo                                 |     return fun(self, *args, **kwargs)
odoo                                 |   File "/usr/lib/python3/dist-packages/odoo/sql_db.py", line 585, in borrow
odoo                                 |     **connection_info)
odoo                                 |   File "/usr/lib/python3/dist-packages/psycopg2/__init__.py", line 164, in connect
odoo                                 |     conn = _connect(dsn, connection_factory=connection_factory, async=async)
odoo                                 | psycopg2.OperationalError: FATAL:  password authentication failed for user "odoo"
db                                   | FATAL:  password authentication failed for user "odoo"
db                                   | DETAIL:  Role "odoo" does not exist.

,错误是:

{{1}}

1 个答案:

答案 0 :(得分:0)

这是因为用户odoo不会在odoo db中出现。

登录您的数据库容器

docker exec -it container_id /bin/bash

然后连接到psql并创建用户

su - postgres -c "createuser -s odoo"