Tag: PHP

通过Docker容器邮件服务器在Symfony中发送电子邮件

我试图通过我的symfony应用程序在开发环境中的docker容器发送电子邮件。 我有以下docker-compose文件: my-app-mailer: image: tvial/docker-mailserver container_name: my_app_mailer hostname: mail domainname: myapp.dev ports: – "25:25" – "143:143" – "587:587" – "993:993" volumes: – ./mail/spamassassin:/tmp/spamassassin/ – ./mail/postfix:/tmp/postfix/ 所以当我运行docker-compose时,我的容器已经启动,我可以看到它的日志。 我跟着从tvial / docker-mailserver的官方回购的reccomandations https://hub.docker.com/r/tvial/docker-mailserver/ 在我的parameters.yml中,我有这些选项 parameters: … mailer_transport: smtp mailer_host: mail.myapp.dev mailer_user: user1@myapp.dev mailer_password: user1pass … 但是,当我通过swiftmailer发送电子邮件时,我看不到他们中的任何一个到达:( 我已经参数了delivery_address我的(所以每个邮件在开发环境都发送到我的地址)。 但是,我成功通过telnet发送邮件: telnet mail.myapp.dev smtp 我可以看到邮件到达。 有没有人知道我失踪的线索? 编辑 这是我的PHP代码与电子邮件发送(我在一个命令) $mailer = $this->getContainer()->get('mailer'); […]

将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运行…”,而保持容器运行,还是我需要运行另一个容器专门为这个命令? 非常感谢!

尝试在composer php中运行php内置服务器时,获取“php_network_getaddresses:getaddrinfo失败:名称或服务未知”

这是我的Dockerfile FROM php:7.1 COPY ./ /var/www/html WORKDIR /var/www/html CMD ["php", "-S 0.0.0.0:8181 -t /var/www/html"] EXPOSE 8181 运行它docker run -p 8181:8181 my-app 并收到错误 [Mon Sep 4 23:47:39 2017] Failed to listen on 0.0.0.0:8181 (reason: php_network_getaddresses: getaddrinfo failed: Name or service not known) 我不明白我做错了什么 这个版本的作品: FROM php RUN echo "<?php echo 'Hello World';" > /tmp/index.php CMD ["php", […]

将Docker部署到生产中:零停机

我没有看到如何使用Docker实现零宕机部署。 比方说,我有一个运行MyWebApp的PHP容器,由同一台服务器上的Nginx容器提供服务。 然后我改变一些代码,因为Docker容器是不可变的,所以我必须用代码更改再次构build/部署MyWebApp容器。 在这个过程中, MyWebAppclosures了。 以前我会使用Ansible或类似的部署我的代码,然后将新版本目录符号链接到networking目录…零停机! Docker和单个服务器应用程序可以实现零停机时间部署吗?

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 […]

如何重新启动docker容器内的PHP-FPM?

我使用docker和我的容器是build立在php:从PHP官方回购 5.6帧fpm图像。 是否有可能从容器内重新启动/重新加载php-fpm?

如何使用我的docker-composeconfiguration与gitlab CI

我有一个关于gitlab的项目,我将使用gitlab CI进行unit testing。 其实,我有一个其他的仓库名称“docker”与docker-compose.yml和Dockerfile两个项目(因为我重现生产configuration,这两个项目是相互依赖的) 其实在我的开发configuration 在Projects目录中: docker PROJECT_1 project_2 在docker目录中: 泊坞窗,compose.yml Dockerfile-PROJECT1 Dockerfile-项目2 [docker文件中的一些configuration文件问] docker-compose.yml的相对path为../project_1和../project_2 为了build立我的configuration,我做了: cddocker工人 docker-compose up -d project1(在docker-compose.yml中的名字) docker exec -ti project1 bash 题 ? 我想知道我怎么可以拉git仓库“docker”,并启动docker – 组成了project1自gitlab CI启动? 谢谢

在参数中设置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上运行file upload过程中使图像文件持久化?

最近我开发了一个在PHP中使用docker运行的应用程序,包括file upload过程。 但是,当容器退出时,实际上传到服务器的文件将会丢失。 你是怎么处理这件事的? 请告诉我如何使文件持久。 例如: 使用S3等外部服务器来存储文件。 使用卷的Docker存储function。

Docker Redis连接被拒绝

我试图通过代码访问Redis服务器,并没有连接。 但是,如果我猛击redis容器,我可以访问redis-cli。 docker-compose.yml看起来像这样 version: '2' services: web: build: context: . dockerfile: Dockerfile_nginx ports: – "9000:80" environment: – NGINX_SERVERNAME=xxx.dev *.xxx.dev command: /bin/bash -c "envsubst '$$NGINX_SERVERNAME' < /var/www/site.template > /etc/nginx/conf.d/default.conf && dos2unix /var/www/provision/init_storage.sh && sh /var/www/provision/init_storage.sh && nginx -g 'daemon off;'" volumes: – .:/var/www links: – php networks: frontend php: build: context: . dockerfile: Dockerfile_php-fpm command: /bin/bash […]