Ik gebruik docker-compose om mijn service te containerizen, en om het een database te geven:
Docker-compose:
Ik weet dat docker-compose standaard een netwerk aanmaakt, en je dus de containers kan aanspreken op hun naam. Dus ik heb dit in mijn .env gezet:
Maar dan krijg ik de volgende error wanneer ik docker-compose up doe:
Ik weet oprecht niet helemaal wat hier fout gaat. Maak ik misschien de containers in de verkeerde volgorde aan? Kan het zijn dat de database nog niet draait wanneer Laravel 'm probeert te benaderen? Ik heb al verschillende dingen geprobeerd; de naam tussen quotes te zetten, de containers in een andere volgorde te bouwen maar niks werkt...
Ik gebruik gewoon Laravel, dus geen Sail o.i.d.
Docker-compose:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| version: "3.8" services: authdb: image: mariadb:latest container_name: authdb ports: - 3306:3306 environment: - MYSQL_ROOT_PASSWORD=secret - MYSQL_PASSWORD=secret - MYSQL_USER=foo - MYSQL_DATABASE=bar healthcheck: test: mysqladmin ping -h 127.0.0.1 -u $$MYSQL_USER --password=$$MYSQL_PASSWORD authapi: depends_on: - authdb build: api/auth ports: - 8081:8181 |
Ik weet dat docker-compose standaard een netwerk aanmaakt, en je dus de containers kan aanspreken op hun naam. Dus ik heb dit in mijn .env gezet:
code:
1
2
3
4
5
6
| DB_CONNECTION=mysql DB_HOST=authdb DB_PORT=3306 DB_DATABASE=bar DB_USERNAME=foo DB_PASSWORD=secret |
Maar dan krijg ik de volgende error wanneer ik docker-compose up doe:
code:
1
2
3
4
5
| > [ 9/10] RUN php artisan migrate: #13 0.233 #13 0.233 Illuminate\Database\QueryException #13 0.233 #13 0.233 SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for authdb failed: Name does not resolve (SQL: select * from information_schema.tables where table_schema = swypurr and table_name = migrations and table_type = 'BASE TABLE') |
Ik weet oprecht niet helemaal wat hier fout gaat. Maak ik misschien de containers in de verkeerde volgorde aan? Kan het zijn dat de database nog niet draait wanneer Laravel 'm probeert te benaderen? Ik heb al verschillende dingen geprobeerd; de naam tussen quotes te zetten, de containers in een andere volgorde te bouwen maar niks werkt...
Ik gebruik gewoon Laravel, dus geen Sail o.i.d.