问题标签 [docker-compose]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
10208 浏览

python - Docker:使用带有无头 Selenium Chromedriver 的容器

我正在尝试将peroumal1 的“docker-chrome-selenium”容器链接到另一个具有使用 Selenium 的抓取代码的容器。

他将他的容器暴露给端口 4444(Selenium 的默认端口),但我无法从我的刮板容器访问它。这是我的docker-compose文件:

这是我的刮刀 Dockerfile:

但是,当我尝试从我的代码中使用 Selenium(见下文)时,我收到以下错误消息:selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be available in the path. Please look at http://docs.seleniumhq.org/download/#thirdPartyDrivers and read up at http://code.google.com/p/selenium/wiki/ChromeDriver. 在 Mac OS X 上,当我不使用 Docker 时,我通过下载chromedriver二进制文件并将其添加到路径来解决此问题,但我不知道在这里做什么。

编辑:我也在尝试使用Selenium 的官方图像来执行此操作,不幸的是,它也不起作用(出现相同的错误消息,要求输入 chromedriver 二进制文件)。

Python代码有什么需要做的吗?

谢谢!

更新:正如@peroumal1 所说,问题是我没有使用 Selenium 连接到远程驱动程序。然而,在我这样做之后,我遇到了urllib2.URLError: <urlopen error [Errno 111] Connection refused>连接boot2docker问题boot2docker ip(并更改了docker-compose文件。这就是我最终的结果:

Python代码(boot2docker我电脑上的IP地址是192.168.59.103):

0 投票
2 回答
3608 浏览

nginx - Docker-compose:nginx 不适用于 django 和 gunicorn

我一直在尝试在 docker-compose 中设置一个环境,其中有几个容器:

  • 姜戈
  • Nginx
  • Postgres
  • 数据库数据
  • 贮存

我使用了以下配置:

我的支持 nginx 站点的配置文件如下所示:

而且它不起作用 - nginx 总是返回 502,但完美地提供静态文件。我也尝试了与 uwsgi 相同的设置,但没有运气。但是,当我将 Django 与 nginx 结合使用并从同一个容器中提供所有内容时,一切正常(同样,在 uwsgi 和 gunicorn 上)。

知道我错过了什么吗?

更新

以下是 nginx 日志:

0 投票
2 回答
1899 浏览

docker - 使用 docker-compose,如何将我的图像共享到 docker-hub?

我对 docker 很陌生,我用 docker-compose 制作了一个简单的 django 应用程序。

我如何将它发布到 docker hub 以便有人可以运行docker run它?

0 投票
1 回答
1369 浏览

connection - docker容器之间的连接

  1. 我有一个 docker-compose.yml,我在其中创建了 2 个容器:A 和 B。
  2. B 是在端口 8000 上运行的 Web 服务器,在我的 docker-compose 文件中,我公开了端口 8000
  3. A 在我的 docker-compose-file 中有一个指向 B 的链接。

但是当我在 B 上发出 GET 请求时,我得到了一个错误:

我该如何解决?

docker-compose ps 只是告诉我端口是8000/tcp

0 投票
4 回答
43003 浏览

docker - docker-compose:为多个服务使用多个 Dockerfile

我正在使用 docker-compose,我想为不同服务的构建步骤使用不同的 Dockerfile。文档似乎建议将不同的 Dockerfile 放在不同的目录中,但我希望它们都在同一个目录中(并且可能使用以下约定进行区分:Dockerfile.postgres、Dockerfile.main ...)。这可能吗?

编辑:我的场景包含这个 docker-compose 文件:

其中postgresdb的 Dockerfile 是:

主要是:

这现在有效,但我想postgresdb通过调用 Python 脚本来扩展 Dockerfile,该脚本根据基于 SQL Alchemy 构建的模型在数据库中创建表(Python 脚本将被称为python manage.py create_tables)。我想将它添加到数据库的 Dockerfile 中,但由于容器的隔离,我不能在那里使用 SQL Alchemy,因为该图像是基于postgres图像而不是 Python 的,并且它不包含sqlalchemy包......

我能做些什么?我尝试在 中使用该main服务postgresdb,但不幸的是它没有携带 python 及其包,所以我仍然无法编写一个 Dockerfile 来创建 Postgres 数据库(通过 shell 脚本)以及它的表(通过Python 脚本)。

0 投票
1 回答
943 浏览

docker - docker-compose 在 /etc/hosts 中生成重复条目

我有一个相当简单的 docker-compose.yml:

Web 容器启动一个 rails 应用程序。一切都很顺利,但有一件事让我感到困惑。查看 Web 容器上的 /etc/hosts 内部,我看到以下条目:

我希望db,因为这是我要链接到Web容器的容器,但是其他人是从哪里来的?仅供参考,这是docker-compose up的输出:

但是只有两个容器docker ps -a输出:

此外,我还看到 web 容器中重复的环境变量,对应 db、db_1 和 emerson_db_1 前缀。

0 投票
1 回答
1398 浏览

docker - 将容器卷安装到不同路径上的另一个容器中

是否可以将容器中的卷挂载到不同路径上的另一个容器中?例如

  • contA暴露一个体积/source
  • 将其安装在另一个容器中docker run --volumes-from contA -v /source/somedir:/etc/otherdir

我正在尝试将其与docker-composeand一起使用jwilder/nginx-proxy

码头工人-compose.yml

如果我尝试这样做,我无法在以下位置看到我的文件/etc/nginx/vhost.d

0 投票
2 回答
4285 浏览

window - 如何使用 Docker 从 Window 中的 linux 容器运行 GUI 应用程序?

我有一个基于 QT 的 GUI 应用程序,我在 docker(centos 映像)中编译。我可以在我的 Linux 机器(OpenSUSE 13.2)中从 Centos 映像中启动 GUI 应用程序,遵循此博客的说明“ http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker "

我想通过window做同样的事情。我安装了window docker。我使用我的 GUI 应用程序加载了所需的 centos 图像,并通过终端尝试使用 container 启动 GUI。它给出了错误提示“gui:无法连接到 X 服务器”

任何想法或解决方案。

0 投票
1 回答
2237 浏览

nginx - 在 docker-compose 的命令键中使用容器的环境变量

我有两个服务docker-compose.yml:docker-gen 和 nginx。Docker-gen 链接到 nginx。为了让 docker-gen 工作,我必须传递 nginx 容器的实际名称或哈希,以便 docker-gen 可以在更改时重新启动 nginx。

当我将 docker-gen 链接到 nginx 时,docker-gen 容器中出现了一组环境变量,我最感兴趣的是NGINX_NAME——它是 nginx 容器的名称。

因此,投入服务领域并使其发挥作用应该很$NGINX_NAME简单command。但是$NGINX_NAME当我启动服务时不会扩展。查看 docker-gen 日志,我看到以下行:

docker_config.yml的如下:

有没有办法将环境变量占位符放入命令中,以便在容器启动时扩展为实际值?

0 投票
1 回答
4024 浏览

postgresql - docker-compose:postgres 数据不持久

我的docker-compose文件中有一个使用postgres' 图像的主要服务,虽然我似乎成功连接到数据库,但我写入它的数据并没有保存在容器的生命周期之外(我所做的是基于本教程)。

这是我的docker-compose文件:

这是我用于postgresdbpostgresdbdata服务的 Dockerfile(它本质上创建了数据库并添加了一个用户):

如何在main服务完成运行后保留数据,以便将来能够使用它(例如当我调用类似的东西时python manage.py retrieve_from_database)?甚至是/var/lib/postgresql正确的目录,并且可以boot2docker访问它,因为它显然仅限于/Users/?

谢谢!