- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我最近开始迁移到 Docker 1.9 和 Docker-Compose 1.5 的网络功能以替换使用链接。
到目前为止,通过 docker-compose 连接到位于一组不同服务器中的我的 php5-fpm fastcgi 服务器的 nginx 没有任何问题。新虽然当我运行 docker-compose --x-networking up
我的 php-fpm、mongo 和 nginx 容器启动时,但是 nginx 立即退出 [emerg] 1#1: host在/etc/nginx/conf.d/default.conf:16 的上游“waapi_php_1”中找不到
但是,如果我在 php 和 mongo 容器正在运行(nginx 退出)时再次运行 docker-compose 命令,则 nginx 将从那时起启动并正常工作。
这是我的 docker-compose.yml
文件:
nginx:
image: nginx
ports:
- "42080:80"
volumes:
- ./config/docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
php:
build: config/docker/php
ports:
- "42022:22"
volumes:
- .:/var/www/html
env_file: config/docker/php/.env.development
mongo:
image: mongo
ports:
- "42017:27017"
volumes:
- /var/mongodata/wa-api:/data/db
command: --smallfiles
这是我用于 nginx 的 default.conf
:
server {
listen 80;
root /var/www/test;
error_log /dev/stdout debug;
access_log /dev/stdout;
location / {
# try to serve file directly, fallback to app.php
try_files $uri /index.php$is_args$args;
}
location ~ ^/.+\.php(/|$) {
# Referencing the php service host (Docker)
fastcgi_pass waapi_php_1:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
# We must reference the document_root of the external server ourselves here.
fastcgi_param SCRIPT_FILENAME /var/www/html/public$fastcgi_script_name;
fastcgi_param HTTPS off;
}
}
如何让 nginx 只使用一个 docker-compose 调用?
最佳答案
这可以通过提到的 depends_on
指令解决,因为它现在已经实现(2016 年):
version: '2'
services:
nginx:
image: nginx
ports:
- "42080:80"
volumes:
- ./config/docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
- php
php:
build: config/docker/php
ports:
- "42022:22"
volumes:
- .:/var/www/html
env_file: config/docker/php/.env.development
depends_on:
- mongo
mongo:
image: mongo
ports:
- "42017:27017"
volumes:
- /var/mongodata/wa-api:/data/db
command: --smallfiles
成功测试:
$ docker-compose version
docker-compose version 1.8.0, build f3628c7
在 documentation 中查找更多详细信息.
还有一篇非常有趣的文章专门讨论这个话题:Controlling startup order in Compose
关于nginx - Docker 网络 - nginx : [emerg] host not found in upstream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33639138/
根据这个article , git push --set-upstream 已弃用,应改用 git push --set-upstream-to。 但是当我检查 git push文档,我只能找到--s
无意中,创建了一个分支remotes/upstream/upstream/develop。上游受 GitHub 控制。标准删除命令失败: $ git fetch --all $ git branch
我的网站在端口 80 (http) 上运行,我使用 nginx 没有任何问题。下面是我在 nginx 中使用的默认文件 server { listen 80; server_name
这个问题在这里已经有了答案: Undo a Git merge that hasn't been pushed yet (35 个答案) 关闭 9 年前。 这个问题与其他问题的不同之处在于,我想在恢
我们在 NGINX 后面有带有 Jersey 服务 API 的 tomcat。我们开发的一个新的流式 API 在我们直接调用 Tomcat 时运行良好,但在通过 NGINX 调用它时开始没有响应。 查
在我的 Remote 列表中,我看到:(git branch -r) upstream/HEAD -> upstream/master 当然,我有一个 upstream/master,origin 是
git rebase upstream/master 和 git pull --rebase upstream master 之间有区别吗?如果有,那是什么?远程可以是任何远程,不一定是上游。 最佳答
我正在尝试按照一些步骤为 GitHub 上的存储库做贡献,但其中一个步骤不起作用。步骤在这里:https://github.com/wdbm/qTox/blob/master/CONTRIBUTING
我使用本教程部署了一个 Django 网站 https://jee-appy.blogspot.com/2017/01/deply-django-with-nginx.html 该网站可从互联网 ww
TL; 博士 Nginx 日志时出现什么http/tcp 现象upstream prematurely closed connection while reading response header
我有一个 Django 应用程序,用户可以使用该应用程序使用多个视频创建视频拼贴画。问题是,在生产中,当将视频上传到 amazon s3 时,我得到一个 502 错误的网关(在本地工作正常)。有谁知道
我的 rails nginx/unicorn 服务器出现上游超时错误。我已尝试解决此问题,但没有找到适合我的解决方案。 我正在粘贴我在 nginx error.log 文件中得到的确切错误: ups
我目前总是在我的用户正在执行的查询中得到 502...这通常返回 872 行并且需要 2.07 才能在 MySQL 中运行。然而,它返回了很多信息。 (每一行都包含很多东西)。有什么想法吗? 运行 D
我在错误日志中收到如下 nginx 错误: [error] 4257#0: *3470 upstream timed out (110: Connection timed out) while rea
我试图将更改从上游 pull 到我的分支中。我试过 git fetch https://github.com/someuser/someproject,但它顽固地拒绝做任何事情。它只是说了一些完全隐晦
/编辑我做了the answer to the question mentioned above的建议授予对注册表的访问权限,如下所示: sudo mkdir -p /usr/local/etc/mo
配置例子 ? 1
我用 upstream和 proxy用于负载平衡。 指令 proxy_pass http://upstream_name使用默认端口,即 80。 但是,如果上游服务器不监听此端口,则请求将失败。 如何
我使用 nginx 作为代理服务器将请求转发到我的 gunicorn 服务器。当我运行 sudo nginx -t -c/etc/nginx/sites-enabled/mysite 时,出现以下错误
我的 git 似乎一团糟。 我首先重命名了一个名为分支 Sprint/13/Story/XXX-11 的分支 使用这个: git branch -m Sprint13/Story/XXX-11 这并没
我是一名优秀的程序员,十分优秀!