I have a docker compose setup for symfony that is working locally but when i run the same thing on Travis CI, I am getting SQLSTATE[HY000] [2002] Connection refused despite setting the host in my .env to mysql.
.env.test
# define your env variables for the test env here
KERNEL_CLASS='App\Kernel'
APP_SECRET='$ecretf0rt3st'
SYMFONY_DEPRECATIONS_HELPER=999999
DATABASE_URL=mysql://admin:password@mysql:3306/app?serverVersion=5.7
docker-compose.yml
version: '3'
services:
web:
image: nginx:alpine
restart: always
tty: true
depends_on:
- php
ports:
- "80:80"
- "443:443"
volumes:
- ./src:/usr/src/app
- ./docker/nginx/conf.d/:/etc/nginx/conf.d/
php:
build:
dockerfile: ./docker/php/Dockerfile
context: ./
working_dir: /usr/src/app
restart: always
tty: true
depends_on:
- mysql
volumes:
- ./src:/usr/src/app
- ./docker/php/local.ini:/usr/local/etc/php/conf.d/local.ini
mysql:
image: mysql:8
restart: always
tty: true
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: app
MYSQL_USER: admin
MYSQL_PASSWORD: password
volumes:
- ./docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf
- ./docker/mysql/init.sql:/docker-entrypoint-initdb.d/init.sql
- mysqldata:/var/lib/mysql
volumes:
mysqldata:
docker/php/Dockerfile
FROM php:7.4-fpm
RUN docker-php-ext-install pdo_mysql
RUN pecl install apcu
RUN pecl install mailparse
RUN apt-get update && \
apt-get install -y \
libzip-dev
RUN docker-php-ext-install zip
RUN docker-php-ext-enable apcu
RUN docker-php-ext-enable mailparse
RUN apt-get update
RUN apt-get install unzip
RUN apt-get -y --no-install-recommends install git \
&& php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /usr/src/app
.travis.ci
language: generic
sudo: required
services:
- docker
before_install:
- docker-compose up -d
script:
- docker-compose exec php composer install && docker-compose exec php vendor/bin/phpunit tests/
Travis error
PHPUnit 9.2.3 by Sebastian Bergmann and contributors.
EEEEEEEEEEEEEEEEFEFEEEEEEE 26 / 26 (100%)
Time: 00:01.095, Memory: 46.50 MB
There were 24 errors:
1) App\Tests\CompanyTemplateApiTest::testCreateCompanyTemplate
Doctrine\DBAL\Exception\ConnectionException: An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused
/usr/src/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:93
/usr/src/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:169
/usr/src/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:157
/usr/src/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:28
/usr/src/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:362
/usr/src/app/vendor/liip/test-fixtures-bundle/src/Services/DatabaseTools/ORMDatabaseTool.php:74
/usr/src/app/vendor/liip/test-fixtures-bundle/src/Services/DatabaseTools/ORMDatabaseTool.php:102
/usr/src/app/vendor/liip/test-fixtures-bundle/src/Test/FixturesTrait.php:89
/usr/src/app/tests/Controller/CompanyTemplateApiTest.php:37
/usr/src/app/tests/Traits/LoginTrait.php:11
/usr/src/app/tests/Controller/CompanyTemplateApiTest.php:43
This same error repeats for almost every test.