Tag: symfony

Nginx重写到根目录下的子文件夹

docker运行在后端专用networking中,我有一些微服务,并且想要build立一个由nginxpipe理的dynamic路由,以便它可以select基于URI的微服务。 我有三个问题: 我需要nginx从URI中path的第一部分获取fastcgi_pass指令的域名,所以从语句fastcgi_pass app:9000; “app” fastcgi_pass app:9000; 应该从这里来: https://example.com/app/foo/bar : https://example.com/app/foo/bar 。 如果URI中的URI是https://example.com/another-app/foo/bar ,则该指令看起来像fastcgi_pass another-app:9000; 是否可以dynamic地这样做,或者我将不得不为每个FastCGI服务器创build一个单独的位置? 我也需要它根据相同的第一个URIpath段重写到根目录下的一个文件夹。 我写了一个configuration,但得到404错误。 我是nginx的新手,只注意到nginx和php-fpm容器中的path不匹配。 404错误可以与这个事实相关吗? 这种路由是否可能(详情请参阅下面的configuration)? 另一个select是为每个微服务创build一个单独的位置,但我不想每次添加或删除微服务时都要更改此configuration。 这是我的configuration: server { server_name _; root /services; #rewrite to the subfolder under root depending on the first section in the path rewrite ^/(\w+)(/|$) /$1/app_dev.php$is_args$args last; location / { # try to serve file […]

Symfony:如何使用Docker指定端口和scheme?

用symfony遇到url生成问题; 使用docker-compose运行php,nginx和postgreSQL。 docker-compose.dev.yml services: php: volumes: – '.:/srv' environment: – SYMFONY_ENV=dev front: environment: – VIRTUAL_HOST=localhost – VIRTUAL_PORT=8080 ports: – 0.0.0.0:8080:80 volumes: – ./web:/srv – /keys/reports.crt:/certs/domain.crt:ro – /keys/reports.key:/certs/domain.key:ro 哪个正确设置nginx,允许我在localhost:8080上访问它localhost:8080 – http 200 OK 问题是,symfony和树枝没有正确使用这个url。 例如 index.html.twig <link rel="stylesheet" type="text/css" href="{{ url }}{{ asset('email/web/styles/main.css') }}?v=1"> 输出错误的scheme并不包括8080端口。 HTTPS:?//localhost/email/web/styles/main.css V = 1 一个build议是将这些variables添加到.env文件 SERVER_HOST=localhost SERVER_SCHEME=http SERVER_PORT=8080 但是这没有效果。 symfony config_dev.yml没有指定https或不同端口的任何内容,对于基本configuration也是如此。 […]

Docker for Windows和Symfony 4中的NGINX 502错误网关错误

我试图在Windows机器上使用NGINX和PHP-FPM在Docker中设置Symfony 3。 目前,我得到一个502坏的网关错误。 我将FPM端口从9000更改为8000,因为在我的主机上,端口9000已被超v服务vmms.exe使用。 我不知道是否有关系 泊坞窗,compose.yml version: "3" services: nginx: build: ./nginx volumes: – ./symfony:/usr/shared/nginx/html ports: – "80:80" – "443:443" environment: – NGINX_HOST=free-energy.org depends_on: – fpm fpm: image: php:fpm ports: – "8000:8000" # It seems like FPM receives the full path from NGINX # and tries to find the files in this dock, so it […]

MongoDB不能在Docker中使用Symfony应用程序

我有一个在Docker容器中运行的REST API的Symfony应用程序。 所有的路由工作,但是当我尝试访问数据库中添加信息的路由或从数据库中提取信息时,我收到消息 Oops! An Error Occurred The server returned a "500 Internal Server Error". Something is broken. Please let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inconvenience caused. docker -compose文件是用PHPDocker创build的 version: "3.1" services: mongo: image: mongo:3.0 container_name: mongo command: mongod […]

symfony不能第一次安装资产

我尝试安装一个数据库和Web服务器与docker撰写。 我的docker组成文件是: version: '3.3' services: db: image: pix_db container_name: pix_db image: mysql:5.7 volumes: – db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: test MYSQL_DATABASE: test MYSQL_USER: test MYSQL_PASSWORD: test networks: – backend api: image: pix_api container_name: pix_api build: context: . dockerfile: ./Dockerfiles/api/Dockerfile.cpu depends_on: – media – db ports: – "8080:8080" networks: – backend networks: backend: hidden: volumes: db_data: […]

Docker,引用一个不同的容器。 使用php命令调用mysqldump

我有一个使用Docker安装在Symfony3项目上的数据库备份包( https://github.com/dizda/CloudBackupBundle ),但是我无法使它工作,因为它找不到PHP或找不到MySQL 当我运行php app/console –env=prod dizda:backup:start通过执行php app/console –env=prod dizda:backup:start ,运行,或通过cron。 我通过PHP映像得到mysqldump命令未find错误,或者PHP没有从Mysql / db映像中发现错误。 我怎么去运行一个PHP命令,然后运行一个mysqldump命令。 我的docker-compose文件如下: version: '2' services: web: # image: nginx:latest build: . restart: always ports: – "80:80" volumes: – .:/usr/share/nginx/html links: – php – db – node volumes_from: – php volumes: – ./logs/nginx/:/var/log/nginx php: # image: php:fpm restart: always build: ./docker_setup/php links: […]

如何从symfony ymlconfiguration文件中获取docker的envvariables

在docker-compose.yml中: mysql: image: mysql:latest container_name: mysql environment: – MYSQL_ROOT_PASSWORD=root – MYSQL_DATABASE=symfony – MYSQL_USER=symfony – MYSQL_PASSWORD=symfony 我怎么能得到这个variables在XMLconfiguration文件中: parameters: database_host: 172.17.42.4 database_port: 3306 database_name: symfony database_user: symfony database_password: symfony 在$ _SERVER中,它们是这样获取的: $_SERVER["SYMFONY_MYSQL_ENV_MYSQL_DATABASE"], $_SERVER["SYMFONY_MYSQL_PORT_3306_TCP_ADDR"], $_SERVER["SYMFONY_MYSQL_ENV_MYSQL_PASSWORD"], $_SERVER["SYMFONY_MYSQL_ENV_MYSQL_USER"]

在AWS Elastic Beanstalk上部署Dockerized Symfony2应用程序

什么是部署多容器docker symfony应用程序的正确方法? 我有以下的知识基础和情况: 我的docker-compose环境在本地工作,由nginx,php5-fpm,memcached,mysql和mailcatcher组成 我正在使用多容器EB应用程序,目标是使用单独的configuration运行单独的“testing”和“生产”环境 我已经知道我不能简单地在EB内build立整个事物,并且必须已经build立了图像,因此我将它们全部放在这里: https : //hub.docker.com/u/sunbake/dashboard/ 我知道我可以为每个EB环境设置自定义的环境variables 我知道SYMFONY__WHATEVER_NAME可以很容易地用作应用程序参数 现在什么让我感到困扰,并且正在问如何以更好的方式做到这一点? 插入敏感值(如数据库密码)似乎有点可疑 – 如果没有别的,HTMLinput字段值可以存储在浏览器caching/历史logging中 为整个操作系统设置敏感数据的环境variables大致相同 – 假设有人获得任何types的系统访问权限,然后获取envvariables。 即使这是唯一可能的事情,获取明文密码是不好的 为了将环境variables通过nginx获取到通过php-fpm运行的PHP skript,nginxconfiguration文件必须通过它们。 换句话说,如果我想使用这种方法,我必须在我的nginx.conf中有硬编码的参数(是的,没有值,但读了)。 第八个子弹是我的整个问题: 鉴于本文中的第三个项目符号,这意味着我必须重新构build整个图像,每次我想添加一个参数,这可以完成,但似乎是一个开销,也意味着我不能使用图像的多个应用程序,可能有不同的参数 鉴于形象和来源必须是公开的(我不打算在这个用例中支付docker中心),它也公开了应用程序如何工作的部分。 例如,如果一个潜在的攻击者能够以某种方式执行代码来列出我的envvariables,他就知道哪个envvariables要准确地查找。 我希望使用整个bitbucket-docker-dockerhub-eb在多个环境中自动部署: 在本地主机上开发一组特定的docker镜像(mailcatcher,本地mysql实例,启用了xdebug) 在AWS EB上testing环境,在RDS中没​​有邮件收集器和数据库 生产环境相同的testing之一,但没有xdebug和一些小的优化调整 当然必须有一个方法如何做到这一点。 我相信我已经走了很远,但是我有些不妥。 任何提示将不胜感激。

Symfony docker容器无法连接到Mysql

我的堆栈很常见,一个用于我的Symfony应用程序的容器,另一个用于Mysql。 出于某种原因,Symfony无法连接到以下错误的Mysql容器: 致命错误:带有消息'SQLSTATE [HY000] [2002]的未捕获exception'PDOException'无法通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器' 一个简单的php文件来testingMySQL连接,在Symfony容器上就可以工作了 <?php $dbh = new PDO('mysql:host=database;dbname=mysite', 'mysite', 'password'); 这里是我的Symfony参数文件: database_driver: pdo_mysql database_host: database database_port: 3306 database_name: mysite database_user: mysite database_password: password 这里是我的docker-compose文件: site: build: webapp ports : – "80:80" volumes: – /home/myuser/dev/mysite:/var/www/html/ links: – database database: image: mysql:5.5 ports: – "3306:3306" environment: – MYSQL_ROOT_PASSWORD=password – MYSQL_DATABASE=mysite – MYSQL_USER=mysite – MYSQL_PASSWORD=password […]

PHPcomposer php里面的容器丢失了供应商目录

我有以下的Dockerfile FROM bitgandtter/sf:php7 # basic env fix ENV TERM xterm # install packages ADD . /var/www # update dependencies RUN cd Helpers && SYMFONY_ENV=prod composer update -o –no-dev ENV SYMFONY_ENV prod 生成映像后,Helpers目录不包含vendor目录。 我真的不知道为什么,因为以前的compsoer更新只是成功地执行,图像创build就好了。 请任何帮助 注意:图像bitgandtter / sf:php7在/ var / www上使用VOLUME声明