使用现有卷运行 docker

Soo*_*och 5 docker odoo docker-compose

需要一些帮助才能在图像更新后恢复我的 Odoo 实例。我想它现在可能已经消失了,但想知道我是否可以恢复它。

我在升级我的 Odoo 实例时犯了以下错误:

  1. 码头工人拉图像
  2. 泊坞窗停止实例
  3. docker rm 实例
  4. docker-compose up -d

现在,我刚刚意识到我不应该根据他们的 Dockerhub 页面执行此方法 - 这是应该做的。

$ docker run --volumes-from old-odoo -p 8070:8069 --name new-odoo --link db:db -t odoo
Run Code Online (Sandbox Code Playgroud)

希望能够重新运行我的实例,我尝试了以下方法但没有成功 - 感觉我没有正确安装旧卷。

docker run --mount source=85e806e42968fb5ee30556ecd559420fd2f745af85aab921d64664414304317a ,target=/_data --expose 8069 --expose 80 --expose 443 --name odoo_web_1 --network nginx-proxy --link odoo_db_1:db -t odoo
Run Code Online (Sandbox Code Playgroud)

当我尝试访问该站点时遇到错误 503 页面.. :( 我不确定是否应该使用 --mount 或 --volume 来访问以前安装的卷。

我确实使用 docker-compose,如果卷安装可以通过 docker-compose 完成,那效果最好。

或者,我应该启动一个新实例并将旧数据库迁移到新数据库吗?

docker-compose.yml 如下

version: '2'
services:
  web:
    image: odoo:latest
    depends_on:
      - db
    expose:
      - "80"
      - "443"
    environment:
      VIRTUAL_PORT: 8069
      VIRTUAL_HOST: sub.domain.com
      LETSENCRYPT_HOST: sub.domain.com
      LETSENCRYPT_EMAIL: admin@domain.com
    volumes:
      - ./openerp-server.conf:/etc/openerp-server.conf
      - ./addons:/mnt/extra-addons
  db:
    image: postgres:latest
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_PASSWORD=xxx
      - POSTGRES_USER=xxx

networks:
  default:
    external:
      name: nginx-proxy

Run Code Online (Sandbox Code Playgroud)

PMN*_*PMN 0

您尚未安装数据卷 ( /var/lib/odoo),因此您的数据文件已随实例一起消失。您安装的卷用于插件和配置文件,它们在新旧映像之间没有区别。

下次将其添加到您的 docker compose 中:):

volumes:
      - ./openerp-server.conf:/etc/openerp-server.conf
      - ./addons:/mnt/extra-addons
      - odoo14:/var/lib/odoo
Run Code Online (Sandbox Code Playgroud)

您也可以安装到文件夹。