Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php docker上的Laravel 6护照_Php_Laravel_Docker_Docker Compose_Dockerfile - Fatal编程技术网

Php docker上的Laravel 6护照

Php docker上的Laravel 6护照,php,laravel,docker,docker-compose,dockerfile,Php,Laravel,Docker,Docker Compose,Dockerfile,我尝试在docker容器内构建API,该容器与外部(非容器内)MSSQL server 2015连接。尝试在docker bash上运行php artisan passport:install时出错 Illuminate\Database\QueryException : SQLSTATE[08001]: [Microsoft][ODBC Driver 17 for SQL Server]TCP Provider: Error code 0x2746 (SQL: insert into

我尝试在docker容器内构建API,该容器与外部(非容器内)MSSQL server 2015连接。尝试在docker bash上运行
php artisan passport:install
时出错

   Illuminate\Database\QueryException  : SQLSTATE[08001]: [Microsoft][ODBC Driver 17 for SQL Server]TCP Provider: Error code 0x2746 (SQL: insert into [oauth_clients] ([user_id], [name], [secret], [redirect], [personal_access_client], [password_client], [revoked], [updated_at], [created_at]) values (?, Laravel Personal Access Client, t4KxVN7GyT3bY8RKAKuHLasIOHnuDbg2FIIVnG4g, http://localhost, 1, 0, 0, 2020-09-25 04:21:16.145, 2020-09-25 04:21:16.145))
我注意到[userid]的值是“?”,这可能是原因吗

我的拉维环境

DB_CONNECTION=sqlsrv
DB_HOST=10.105.12.12
DB_PORT=1433
DB_DATABASE=API
DB_USERNAME=admin1
DB_PASSWORD=secret
我的Dockerfile

FROM php:7.4.1-apache

USER root

WORKDIR /var/www/html

RUN apt-get update && apt-get install -y \
    libpng-dev \
    zlib1g-dev \
    libxml2-dev \
    libzip-dev \
    libonig-dev \
    zip \
    curl \
    unzip \
    gnupg2 \
    && docker-php-ext-configure gd \
    && docker-php-ext-install -j$(nproc) gd \
    && docker-php-ext-install pdo_mysql \
    && docker-php-ext-install mysqli \
    && docker-php-ext-install zip \
    && docker-php-source delete


ENV ACCEPT_EULA=Y

# Microsoft SQL Server Prerequisites
RUN apt-get update \
    && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
    && curl https://packages.microsoft.com/config/debian/9/prod.list \
        > /etc/apt/sources.list.d/mssql-release.list \
    && apt-get install -y --no-install-recommends \
        locales \
        apt-transport-https \
    && echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
    && locale-gen \
    && apt-get update \
    && apt-get -y --no-install-recommends install \
        unixodbc-dev \
        msodbcsql17

RUN docker-php-ext-install mbstring pdo pdo_mysql \
    && pecl install sqlsrv pdo_sqlsrv xdebug \
    && docker-php-ext-enable sqlsrv pdo_sqlsrv xdebug




COPY .docker/vhost.conf /etc/apache2/sites-available/000-default.conf

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

RUN chown -R www-data:www-data /var/www/html \
    && a2enmod rewrite
我的Docker-compose.yml

version: '3.7'
services: 
  app:
    build:
      context: .
      dockerfile: .docker/Dockerfile
    image: 'apidev'
    ports:
      - 8080:80
    volumes:
      - ./:/var/www/html
我为windows 10运行docker destop


如果不是在容器中,则此应用程序运行良好

通过更改pdo驱动程序解决

我没有使用“pdo_sqlsrv”驱动程序连接到MSSQL 2005,而是使用“pdo_dblib”

希望这能帮助别人