Tag: symfony

使用docker进行Symfony应用程序部署

我来这里是因为我开发了一个Symfony3的应用程序。 我对应用程序的部署有一些疑问。 其实我用docker-compose: version: '2' services: nginx: build: ./docker/nginx/ ports: – 8081:80 volumes: – .:/home/docker:ro – ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro – ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf:ro networks: – default php: build: ./docker/php/ volumes: – .:/home/docker:rw – ./docker/php/php.ini:/usr/local/etc/php/conf.d/custom.ini:ro working_dir: /home/docker networks: – default dns_search: – php db: image: mariadb:latest ports: – 3307:3306 environment: – MYSQL_ROOT_PASSWORD=collectionManager – MYSQL_USER=collectionManager – MYSQL_PASSWORD=collectionManager – MYSQL_DATABASE=collectionManager volumes: – […]

如何在后台Docker中运行Symfony命令

我需要在后台运行rabbitMQ使用者如何在Docker容器中运行他?

Symfony实体validationvalidation外键是否存在

我希望能够使用实体validation器约束来validation外键book_id是否有效,请参阅下面的内容: book.php中 /** * Book * * @ORM\Table("book") * @ORM\Entity * @ORM\Entity(repositoryClass="AppBundle\Repository\BookRepository") */ class Book { /** * @var integer * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @var string * @ORM\Column(name="name", type="string") * @Assert\Length( * max = 250, * maxMessage = "Name cannot be longer than {{ limit }} characters", […]

composer php在Docker中使用自己的Symfonypath(加载旧文件)

我正在使用docker。 发布更新命令(php类)在作曲者更新后运行。 工作得很好,直到我做了Laravel更新5.4-> 5.5,下载了新的Symfony包 composer php清除caching没有帮助 composer php自我更新没有帮助 composer php签名是平等的 [Symfony \ Component \ Debug \ Exception \ FatalThrowableError]调用未定义的方法Illuminate \ Foundation \ Console \ ClosureCommand :: setHidden() 我正在塞取文件,这个方法存在于父类中! 我把这个小东西放在构造函数里是怎么回事: use Symfony\Component\Console\Command\Command as SymfonyCommand; class Command extends SymfonyCommand { public function __construct() { $r1 = new \ReflectionClass($this); $r2 = new \ReflectionClass(SymfonyCommand::class); var_dump([$r1->getFileName(), $r2->getFileName()]); } // rest […]

Symfony2的Docker容器中的权限问题

我打算创build一个Docker镜像来引导Symfony项目。 这是我的Dockerfile: FROM php:7-apache LABEL Description = "This image is used to start Symfony3 project" ENV DIRPATH /var/www/html # apt-get command RUN apt-get update && apt-get install -y \ vim \ git RUN apt-get install -y zlib1g-dev && docker-php-ext-install zip # Install Composer RUN curl -sS https://getcomposer.org/installer | php RUN mv composer.phar /usr/local/bin/composer # Install […]

composer php安装失败,当无法看到MySQL数据库

TL; DR:安装后脚本无法看到MySQL服务器时,composer php安装失败 我正在为Symfony应用程序构buildDocker容器,在构build过程中,我做了这样的事情 RUN export SYMFONY_ENV=prod && \ composer install –prefer-dist –optimize-autoloader 在安装结束时,它会失败 Generating optimized autoload files [Doctrine\DBAL\Exception\DriverException] An exception occured in driver: SQLSTATE[HY000] [2003] Can't connect to MySQL server on '127.0.0.1' (111) [Doctrine\DBAL\Driver\PDOException] SQLSTATE[HY000] [2003] Can't connect to MySQL server on '127.0.0.1' (111) [PDOException] SQLSTATE[HY000] [2003] Can't connect to MySQL server on '127.0.0.1' […]

将Docker容器部署到AWS时运行数据库迁移命令

请多多包涵。 对Docker来说很新颖。 我使用CodeDeploy将Docker容器(分离)部署到AWS EC2registry。 在部署时,在设置一些环境variables之后运行以下命令: exec docker run -d ${PORTS} -v cache-${CACHE_VOLUME} –env-file $(dirname $0)/docker.env –tty "${IMAGE}:${TAG}" 容器在EC2容器服务中运行定位和标记的图像。 到目前为止没有问题。 由于这是一个PHP应用程序(特别是一个Symfony2应用程序),我通常需要发出以下命令来执行部署的数据库迁移: php app/console doctrine:migrations:migrate –no-interaction 现在,是否有任何运行此命令在“docker运行…”,而保持容器运行,还是我需要运行另一个容器专门为这个命令? 非常感谢!

无法通过PHP连接到docker mysql

我有一个docker-compose设置了两个容器:一个是php / apache服务,另一个容器是数据库(mysql)。 这是我的docker-compose.yml version: '2' services: app: depends_on: – db links: – db:mysql build: . image: app ports: – "80:80" restart: always links: – db:db volumes: – ../:/var/www/html/ db: image: mysql:latest restart: unless-stopped volumes: – ./db_data:/var/lib/mysql – ./databaseDumps:/tmp/databaseDumps environment: MYSQL_USER: "myApp" MYSQL_PASSWORD: "root" MYSQL_ROOT_PASSWORD: "root" MYSQL_DATABASE: "myAppDatabase" MYSQL_ROOT_HOST: "%" 这里是我的应用程序Dockerfile: FROM php:7-apache COPY prefilled_files/000-default.conf […]

在参数中设置symfonycaching目录

我正在为Symfony应用程序构builddocker环境。 每个应用程序都有一个容器,其中包含链接到应用程序服务器的Web根目录的附加数据容器。 作为基础架构安全强化的一部分,这些数据容器被设置为只读,以防止任何远程代码被利用。 每个应用程序也有一个侧面的汽车容器,允许日志写入。 Symfony当前将caching写入默认的cache_dir位置 ${web_root}/app/cache/${env} 这是在只读数据容器中 当试图启动应用程序时,我得到这个错误 无法写入caching目录 很明显,因为它在只写容器中会发生 我已经设置了我的log_path设置在读写边车logging容器中的只读容器之外的参数 /data/logs/symfony 这工作正常。 我已经阅读了Symfony的食谱如何超越目录结构,但它只build议如何在AppKernal.php中做到这AppKernal.php ,我不想做的path可能会改变取决于如果它在local/uat/prod环境。 我们从我们的构build服务器提供Symfony不同的参数取决于我们正在部署的环境,所以把这个configuration放在这里是有道理的。 有没有人知道是否有可能重写caching目录在configuration而不是编辑AppKernal.php

Docker权限开发环境使用主机装入卷

我正在使用docker-compose来为一堆symfony2应用程序设置一个可移植的开发环境(尽pipe我没有想做的事情只是针对symfony)。 我决定把本地机器上的源文件公开为docker中所有其他依赖项的数据卷。 这样开发人员可以在本地文件系统上进行编辑。 一切都很好,除了运行应用程序之后,我的caching和日志文件以及由/ vendor目录中的composer创build的文件现在由root拥有。 我已阅读关于这个问题和一些可能的方法在这里: 将添加的文件的权限更改为Docker卷 但我不能完全梳理我在docker-compose.yml文件中所做的更改,以便当我的symphony容器以docker开头时 – 编写任何创build的文件都具有主机上用户的权限。 我发布的文件供参考,工作人员是哪里的PHP等生活: source: image: symfony/worker-dev volumes: – $PWD:/var/www/app mongodb: image: mongo:2.4 ports: – "27017:27017" volumes_from: – source worker: image: symfony/worker-dev ports: – "80:80" – mongodb volumes_from: – source volumes: – "tmp/:/var/log/nginx"