在docker下运行Symfony 1.4推进应用程序时出错

在docker下运行Symfony 1.4推进应用程序时出错,docker,symfony-1.4,propel,Docker,Symfony 1.4,Propel,我尝试在docker下运行我的旧Symfony 1.4推进应用程序,为此,我在docker-compose.yml中有: version: '3.1' services: web: container_name: Demo_Ads_web build: context: ./web dockerfile: Dockerfile.yml environment: -

我尝试在docker下运行我的旧Symfony 1.4推进应用程序,为此,我在docker-compose.yml中有:

version: '3.1'

services:
    web:
        container_name: Demo_Ads_web

        build:
            context: ./web
            dockerfile: Dockerfile.yml

        environment:
            - APACHE_RUN_USER=www-data
        volumes:
            - ${APP_PATH_HOST}:${APP_PTH_CONTAINER}

        ports:
            - 8090:80
        working_dir: ${APP_PTH_CONTAINER}


    db:
        container_name: Demo_Ads_db
        image: mysql:5.6.46
        restart: always
        environment: 
            MYSQL_ROOT_PASSWORD: 1
        volumes:
            - ${DB_PATH_HOST}:/var/lib/mysql


    phpmyadmin:
        container_name: Demo_Ads_phpmyadmin
        depends_on:
          - db
        image: phpmyadmin/phpmyadmin
        restart: always
        ports:
          - 8091:80
        environment:
          PMA_HOST: db
          MYSQL_ROOT_PASSWORD: 1
我不确定哪个是/config/databases.yml的有效格式,因为我需要在其中设置db容器。 我试着这样做:

all:
  propel:
    class:          sfPropelDatabase
    param:
      dsn:          mysql://root:db@1/Demo_Ads_Docker
其中Demo_Ads_Docker是db name 1-密码 数据库容器 root登录用户

但看起来这是无效的,因为我得到了错误:

[PropelException]
[wrapped: mysql extension not loaded [User Info: Array]]
[wrapped: connect failed [Native Error: Invalid argument] [User Info: Array]]
[wrapped: connect failed [Native Error: No such file or directory] [User Info: Array]]
哪种格式有效?是否因为databases.yml中的参数错误而出错

已修改:

在my web/Dockerfile.yml中,设置了mysql:

FROM php:5.4-apache

RUN apt-get update && \
    apt-get install -y \
    python \
    libfreetype6-dev \
    libwebp-dev \
    libjpeg62-turbo-dev \
    libpng-dev \
    nano \
    git-core \
    curl \
    build-essential \
    openssl \
    libssl-dev \
    libldap2-dev \
    netcat \
    sqlite3 \
    libsqlite3-dev \
    && git clone https://github.com/nodejs/node.git \
    && cd node \
    && git checkout v12.0.0 \
    && ./configure \
     && make \
     && make install

  RUN npm install cross-env

  RUN  docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-webp-dir=/usr/include/  --with-jpeg-dir=/usr/include/


  RUN  docker-php-ext-install gd  mysql zip bcmath pcntl sysvmsg exif \
&& a2enmod rewrite

COPY virtualhost.conf /etc/apache2/sites-enabled/000-default.conf
我需要mysqli吗?另外,请确定设置了容器的/config/databases.yml文件的格式是什么

修改2: 我添加了mysql和mysqli,但现在运行应用程序时出现错误:

[PropelException]
[wrapped: mysql extension not loaded [User Info: Array]]
[wrapped: connect failed [Native Error: Invalid argument] [User Info: Array]]
[wrapped: connect failed [Native Error: No such file or directory] [User Info: Array]]
/config/databases.yml文件的格式是否无效

修改3: 我重新制作了Demo_Ads/config/databases.yml:

all:
  propel:
    class:          sfPropelDatabase
    param:

      classname:  PropelPDO
      dsn:        mysql:dbname=Demo_Ads_db;host=db
      username:   root
      password:   1
并在phpmyadmin中创建Demo_Ads_db数据库

我删除了缓存目录

但运行应用程序时,我遇到错误:

[PropelException]
[wrapped: mysql extension not loaded [User Info: Array]]
[wrapped: connect failed [Native Error: Invalid argument] [User Info: Array]]
[wrapped: connect failed [Native Error: No such file or directory] [User Info: Array]]

怎么了?

数据库连接的有效格式是:

dsn:          mysql://root:1@db/Demo_Ads_Docker

这对我很有用

能否显示web容器的Dockerfile?从上面的消息来看,php似乎没有安装mysql(i)扩展。请看MODIFIEDPlease,看MODIFIED 2扩展现在看起来还可以。似乎您现在需要阅读以修复
数据库.yml
。您是如何尝试修复上一个问题的?你在哪里找的?你研究了什么?您阅读了哪些文档?您是否调试了应用程序中的任何内容以了解发生了什么?你知道找不到的文件吗?你知道是哪个组件触发了这个错误吗?