Tag:

在Docker环境中使用Symfony进行生产

我正在使用Docker-Compose在Docker上实现一个symfony应用程序。 我将至less有以下容器: Nginx的 Rabbitmq服务器 PHP-FPM MySQL的 Solr的 目前我们也有使用上述设置的开发环境。 Symfony应用程序存储在本地(主机),然后在PHP-FPM容器上使用一个卷,以便它可以读取应用程序 – 这很好。 我们打开php-fpm容器来运行composer / app / console命令。 我们还手动运行使用rabbitmq服务器消息的使用者(Symfony命令)。 我在生产中有什么select? 1)我可以创build一个运行应用程序的容器,然后允许其他容器使用它吗? 我看到php-fpm容器需要访问应用程序代码 – 但是我也想创build一个容器来运行一个消费者 – 传递服务的名字来运行到容器 – 这意味着我可以有一个单一的图像可以灵活地启动来处理来自任何队列的消息。 日志/caching在这个选项中会发生什么? 2)是否将应用程序存储在每个需要它的图像中? 这是我最不喜欢的select,然后更新我需要build立每个图像的应用程序 3)我还没有探索的东西? 我想允许对应用程序进行简单的更新 – 也许是脚本化的,但是我也想最大限度地减less停机时间 – 我可以使用haproxy或类似的东西来做到这一点 – 有没有人有生产中运行多容器symfony应用程序的任何经验?

如何将本地托pipe的MySQL数据库连接到Docker容器

我知道这个问题可能会重复,但我没有得到任何明确的答案。 因为我对docker概念完全陌生。 通过docker-compose.yml我能够运行应用程序。 现在我们要将应用程序移动到生产环境,但是我们不想使用容器数据库。 那么有什么办法,以便我可以连接我的本地MySQL数据库与应用程序使用docker-compose ? 我的docker-compose.yml如下所示: version: '3' services: web-app: build: context: . dockerfile: web-app/Dockerfile ports: – 8080:8080 links: – app-db app-db: build: context: . dockerfile: app-db/Dockerfile environment: – MYSQL_ROOT_PASSWORD=password – MYSQL_DATABASE=Optimize ports: – 3306:3306 而不是app-db部分,我只想连接到我本地托pipe的mysql数据库。 任何帮助将不胜感激。

用docker-compose运行docker镜像

我有我的简单的应用程序在C#中,连接到PostgreSQL。 我想创build这个应用程序的形象,只是与docker运行。 我使用时一切正常: $ docker build $ docker run postgres $ docker run my_app 此外,当我使用从应用程序目录撰写时,一切都可以: $ docker-compose build $ docker-compose up 但是有没有机会使用docker-compose为我以前build造的图像? 我想发布这个图像到我的回购和我的团队的其他人只是下载并运行这个图像(应用程序+数据库)。 当我编写构build和下一步撰写运行my_app我连接到数据库时有exception: dbug: Npgsql.NpgsqlConnection[3] Opening connection to database 'POSTGRES_USER' on server 'tcp://postgres:5432'. Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> System.AggregateException: One or more errors occurred. (No […]

为什么docker从docker文件构build镜像会在不正确的构build出口时创build容器?

我使用docker从docker文件构build图像。 在这个过程中有一些错误发生,所以编译出口错误代码。 当我运行docker images我可以看到一个未标记的图像。 所以我试图删除它docker rmi xxxxx 。 但它总是失败,它说图像不能被删除,因为它被一个停止的容器使用。 所以我深入一点。 我运行docker ps -a ,现在我可以看到构build过程失败时创build的已停止容器的长列表。 为什么会有容器创build? 我认为图像在编程中就像“类”的概念,而容器是类的实例。 在图像成功构build之前,为什么会创build实例? 如何在没有所有停止的容器的情况下构build图像?

如何通过docker-php-ext-install为php安装扩展?

为了解决问题 ,我现在正在尝试安装mysql pdo通过 docker-php-ext-install 正如在PHP图像的README中指出的那样。 然而,我的电话没有说明: Libraries have been installed in: /usr/src/php/ext/mysqli/modules If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the […]

为什么Docker Compose重新启动可以渲染容器输出越来越多?

我正在编写一个基于Docker Compose的Web应用程序,它有许多后台系统 – 一个HTTP API,一个HTTP代理和一个队列。 所有东西都在PHP的Alpine容器中,PHP 5.6或7.0。 我最初在API容器内的Supervisor中设置了队列,工作正常。 然而,Supervisor / Python使得容器比他们应该更加胖(80M而不是25M),所以我把队列移到了自己的容器中。 它生活了大约5分钟,为了重新启动而退出,我在Supervisor中使用了自动重启系统,所以我已经在Docker Compose中交换到了重启系统。 我正在使用Compose YAML格式的版本2。 当队列启动时,它会向stdout呈现一个简单的消息: queue_instance | Starting queue watcher (path=/remote/queue, proxying to proximate-proxy:8081) 当我最初做docker-compose up时,这很好。 但是,对于每次重新启动,我都会收到其中三条消息,然后是五条消息,以此类推,没有限制。 如果我做docker ps然后它表明只有一个队列运行: halfer@machine:~/proximate-app$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a9c94558769d proximate-app "/tmp/container-st…" 2 hours ago Up 2 hours 0.0.0.0:8084->8084/tcp app_instance 7e48d6aec459 proximate-api "sh […]

Docker撰写mysql导入.sql

我无法用docker-compose导入.sql转储文件。 我已经按照文档,这显然会从docker-entrypoint-initdb.d加载.sql文件。 但是,当我运行docker-compose up ,sql文件不会被复制到容器。 我已经尝试用-vf标志停止容器,但是这也不起作用。 我在我的.yml脚本中做错了什么? 我在我的撰写文件所在的目录database / db-dump /中有dump.sql。 frontend: image: myimage ports: – "80:80" links: – mysql mysql: image: mysql ports: – "3306:3306" environment: MYSQL_ROOT_PASSWORD: rootpass MYSQL_USER: dbuser MYSQL_PASSWORD: userpass MYSQL_DATABASE: myimage_db volumes: – ./database/db-dump:/docker-entrypoint-initdb.d

有时在Docker中导入数据Mysql非常慢

我有一个文件* .SQL超过1GB,当我导入到本地或Vagrant的Mysql,它总是成功的。 但是使用相同的文件,我导入到Docker上的Mysql,它非常慢(大约10MB / 15分钟)。 我已经多次查看了相同的结果。 我尝试了很多文件。 它似乎发生在指定的文件。 我不知道原因。 我需要帮助。 这是我的docker-compose.yml: version: "2.0" services: database: image: "mysql/mysql-server:5.5" ports: – "3307:3306" volumes: – "db:/var/lib/mysql" – ./sql:/home/sql environment: MYSQL_ALLOW_EMPTY_PASSWORD: "yes" volumes: db: {}

Symfony服务器:在PHP Docker容器中运行

我有一个PHPdocker集装箱在哪里是我的symfony项目。 这是我的docker-compose.yml php-fpm: build: ./php container_name: php-fpm links: – db ports: – 9000:9000 – 8448:8448 – 8000:8000 working_dir: /var/www/html/ volumes: – ../app:/var/www/html volumes_from: – data tty: true env_file: – ./docker.env entrypoint: /entrypoint.sh 我想用这个命令启动我的symfony项目: php bin/console server:run localhost:8000 但是,当我想访问url时,它不工作。 我有这个错误消息: 本地主机页面不起作用 本地主机没有发送任何数据。 我该如何解决这个问题? PS:我正在使用docker for mac 和php bin/console -vvv server:run localhost:8000输出: [2016-08-06 14:09:53] php.DEBUG:fsockopen():无法连接到localhost:8000(Connection refused){“type”:2,“file”:“/ var […]

预编译的资产在泊坞窗图像中不存在

我正在尝试使用docker运行简单的Rails应用程序。 源自数据容器“app”的源代码。 'app'数据容器也被nginx用于服务器预编译的资产和静态文件。 但是在运行“bundle exec rake assets:precompile”之后没有find预编译的资源。 我在使用VirtualBox的Mac OS X上使用docker(Docker version 1.10.1,build 9e83765)。 泊坞窗,compose.yml version: '2' services: web: build: . command: bundle exec puma env_file: .env environment: – RACK_ENV=production – RAILS_ENV=production volumes_from: – app ports: – "3000:3000" links: – db nginx: image: nginx ports: – "80:80" volumes_from: – app volumes: – /app/public:/usr/share/nginx/html:ro – /app/config/deploy/nginx.conf:/etc/nginx/conf.d/default.conf db: […]