我正在研究如何使用 docker 运行 openproject。我正在通过openproject/docker工作。
我已经使用外部 postgres 目录运行了 docker 映像。
我现在正在研究如何连接到现有的 postgresql 运行实例。
根据官方文档,我使用的命令行看起来不错。
编辑。在缺少的 -p 中添加。
docker run -p 8082:80 -p 5432:5432 --name openproject_dev -e SECRET_KEY_BASE=secret -e DATABASE_URL=postgresql://openproject:openproject-dev-
password@localhost:5432/openproject_dev \
-v /Users/admin/var/lib/openproject/logs:/var/log/supervisor \
-v /Users/admin/var/lib/openproject/static:/var/db/openproject openproject/community:5.0
我省略了 -d [deamon] 标志,所以我可以看到任何错误。
创建 docker 容器时,我得到
-----> You're using an external database. Not initializing a local database cluster.
/usr/src/app /usr/src/app
Starting memcached: memcached.
我期望的。然后我收到一个关于连接到我没想到的 postgresql 服务器的错误。
...
PG::ConnectionBad: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Cannot assign requested address
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
/usr/local/bundle/gems/activerecord-
4.2.7.1/lib/active_record/connection_adapters/postgresql_adapter.rb:651:in `initialize'
我猜初始化容器的脚本期望 postgres 正在运行,但事实并非如此。您将如何在命令行上将 docker 容器端口转发到 5432 的请求发送到主机?...与 docker run -p 5432:5432 ...相反,它将 5432 从 docker 容器暴露给主机。