小编jag*_*r91的帖子

当我在不同的目录中使用 docker-compose -f 时,不会读取环境文件

我的 Docker.env文件有问题。当我在我的 Docker 文件夹中(我有docker-compose.yml.env文件的地方)时,环境变量可以正常读取.env。但是,当我docker-compose -f ./docker/docker-compose.yml up --build -d在更高级别的目录中运行时,会收到如下警告:

The MYSQL_ROOT_PASSWORD variable is not set. Defaulting to a blank string. 
Run Code Online (Sandbox Code Playgroud)

有没有人遇到过这个问题?我尝试设置env_file属性docker-compose.yml并使用其他文件编码(我在 Google 中找到了这个解决方案),但仍然没有。

这是我的配置:

version: '2'

services:
    mysql:
        container_name: mysql
        image: mysql
        volumes:
            - "./.data/db:/var/lib/mysql"
        environment:
            MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
            MYSQL_DATABASE: ${MYSQL_DATABASE}
            MYSQL_USER: ${MYSQL_USER}
            MYSQL_PASSWORD: ${MYSQL_PASSWORD}
Run Code Online (Sandbox Code Playgroud)

.env 文件:

# MySQL
MYSQL_ROOT_PASSWORD=test
MYSQL_DATABASE=test
MYSQL_USER=test
MYSQL_PASSWORD=test
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

6
推荐指数
1
解决办法
2822
查看次数

由 phpunit、symfony 测试控制器操作

我需要测试我的控制器操作,我需要建议。这是我的控制器的外观:

class SampleController extends Controller
{    
    public function sampleAction(Request $request)
    {
        $lang = 'en';

        return $this->render('movie.html.twig', [
            'icons' => $this->container->getParameter('icons'),
            'language' => $lang,
            'extraServiceUrl' => $this->getAccount()->getExtraServiceUrl(),
            'websiteUrl' => $this->getAccount()->getWebsiteUrl(),
            'myProfileUrl' => $this->getAccount()->getMyProfileUrl(),
            'redirectForAnonUser' => $this->container->get('router')->generate('login'),
            'containerId' => $request->getSession()->get("_website"),
            'isRestricted' => $this->getLicense()->isRestricted(),
            'isPremiumAvaible' => $this->getLicense()->isPremiumAvaible()
        ]);
    }

    private function getAccount()
    {
        return $this->container->get('context')->getAccount();
    }

    private function getLicense()
    {
        return $this->container->get('license');
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,通常我通过 behat 测试控制器,但这个只是渲染树枝并设置变量,所以我可能无法通过 behat 测试它。我试图通过 phpUnit 测试它并且它可以工作,但是模拟链方法的最佳方法是什么?或者也许你有其他方法来测试它?顺便说一句,容器是私有的,所以我需要反思?你好

php testing phpunit symfony twig

4
推荐指数
1
解决办法
5313
查看次数

标签 统计

docker ×1

docker-compose ×1

php ×1

phpunit ×1

symfony ×1

testing ×1

twig ×1