Heim > Fragen und Antworten > Hauptteil
Ich bin nicht gut im Erstellen von Docker-Compose und habe derzeit Probleme beim Erstellen eines neuen Projekts.
Nach dem Erstellen kann ich nicht auf den Mariadb-Server im PHP-Anwendungscontainer zugreifen. Ich erhalte die folgende Fehlermeldung:
PDO::__construct(): php_network_getaddresses: getaddrinfo von mariadb Fehler: Name kann nicht aufgelöst werden
Ich weiß also, dass etwas falsch konfiguriert ist, aber ich weiß noch nicht was. Ich habe viele Änderungen versucht, aber nichts hat funktioniert.
Das ist mein aktuelles docker-compose.yml:
version: "3.8" networks: # used by some services (php) to communicate with other docker-compose.yaml censored.com: external: name: censored.com services: app: build: context: . target: symfony_php args: - secret=id=composerauth,src=${HOME}/.composer/auth.json restart: unless-stopped healthcheck: interval: 10s timeout: 3s retries: 3 start_period: 30s environment: APP_ENV: dev HOST: www.censored.lan networks: - default - censored.com volumes: - ./:/srv/app:rw,cached - ./docker/php/conf.d/symfony.dev.ini:/usr/local/etc/php/conf.d/symfony.ini - ${HOME}/.composer/auth.json:/root/.composer/auth.json # If you develop on Linux, comment out the following volumes to just use bind-mounted project directory from host - ./var/cache:/srv/app/cache:rw - ./var/log:/srv/app/logs:rw depends_on: - mariadb extra_hosts: - www.censored.lan:127.0.0.1 nginx: build: context: . target: symfony_nginx args: - secret=id=composerauth,src=${HOME}/.composer/auth.json restart: unless-stopped depends_on: - app environment: NGINX_DOMAIN: www.censored.lan ports: - 8001:80 volumes: - ./docker/nginx/templates/dev.conf.template:/etc/nginx/templates/default.conf.template:ro - ./docker/nginx/rules/rules.dev.conf:/etc/nginx/rules.conf:ro - ./public:/srv/app/public:ro - ./src:/srv/app/src:ro mariadb: image: mariadb:10.7 environment: MYSQL_ROOT_PASSWORD: changeme MYSQL_DATABASE: database MYSQL_USER: user MYSQL_PASSWORD: changeme networks: - default - censored.com ports: - '3307:3306' restart: on-failure volumes: - db_data:/var/lib/mysql volumes: db_data: {}
Kann mir jemand helfen, dieses Problem zu lösen?
Danke!
P粉4821083102024-03-27 00:23:01
问题与我的 docker-compose 配置文件无关。
我的应用程序是一个 PHP Symfony 应用程序,它在构建期间的初始“composer 安装”之后执行“缓存:清除”。 “cache:clear”正在触发对尚未准备就绪的数据库的调用。 为了解决这个问题,我只需将我的 mariadb 版本设置为我的 Symfony 应用程序中的“DATABASE_URL”参数,以避免无用的数据库查询。