我的dockerfile如下:
FROM phusion/passenger-ruby24:0.9.26
ENV APP_HOME=/home/app/pact_broker/
RUN rm -f /etc/service/nginx/down /etc/nginx/sites-enabled/default
COPY container /
RUN gem update --system
# USER app
COPY pact_broker/config.ru pact_broker/Gemfile pact_broker/Gemfile.lock $APP_HOME
# Update system gems for:
# https://www.ruby-lang.org/en/news/2017/08/29/multiple-vulnerabilities-in-rubygems/
RUN gem install bundler && \
cd $APP_HOME && bundle install --deployment --without='development test'
COPY pact_broker/ $APP_HOME/
RUN chown -R app:app $APP_HOME
EXPOSE 80
CMD ["/sbin/my_init"]如何让这个容器使用本地安装的postgresql?
发布于 2018-04-01 21:04:18
从上述容器访问主机上的PostgreSQL有两种方式:
1.仅限<HOST_IP>:<PostgreSQL_PORT>上的,如果在网桥网络中启动docker容器:
docker run -d <image_name>PostgreSQL应该绑定到<HOST_IP>或0.0.0.0 (包括<HOST_IP>)。
2. <HOST_IP>:<PostgreSQL_PORT> (如果PostgreSQL绑定了<HOST_IP>或0.0.0.0)和localhost:<PostgreSQL_PORT>上的,如果主机网络中启动了docker容器:
docker run --network host -d <image_name>默认情况下,PostgreSQL绑定到localhost,因此第二种方法是一个通用的解决方案。
发布于 2020-01-09 17:47:49
如果在MAC OS上-
默认情况下,Postgres在localhost上工作,如果您没有对其进行任何更改,那么它必须是localhost。
我们的案例是将Postgres与我们的pact-broker容器连接起来,这意味着一个容器将与我们的本地交互。
因此,将主机定义为"docker.for.mac.localhost“而不是"localhost”,应该是可行的。
如果您使用不同操作系统,而不是MAC和它们,您可以检查类似于windows*的"docker.for.win.localhost“
https://stackoverflow.com/questions/49563186
复制相似问题