我已经按照本教程docker tutorial进行了学习,顺便说一下,它是很棒的教程。 安装了8 Laravel版本,当我尝试运行PHP artisan migration时,出现了此问题:
ParseError
syntax error, unexpected ')'
at vendor/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php:51
47▕ return new DatabaseBatchRepository(
48▕ $app->make(BatchFactory::class),
49▕ $app->make('db')->connection(config('queue.batching.database')),
50▕ config('queue.batching.table', 'job_batches'),
➜ 51▕ );
52▕ });
53▕ }
54▕
55▕ /**
+1 vendor frames
2 [internal]:0
Composer\Autoload\ClassLoader::loadClass("Illuminate\Bus\BusServiceProvider")
+5 vendor frames
8 artisan:37
Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
我猜这是在运行Docker环境时链接到Laravel 8的。
让我们看看docker-compose.yaml
version: '3'
networks:
laravel:
services:
nginx:
image: nginx:stable-alpine
container_name: nginx
ports:
- "8088:80"
volumes:
- ./src:/var/www/html
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
- mysql
networks:
- laravel
mysql:
image: mysql:5.7.22
container_name: mysql
restart: unless-stopped
tty: true
ports:
- "4306:3306"
volumes:
- ./mysql:/var/lib/mysql
environment:
MYSQL_DATABASE: homestead
MYSQL_USER: homestead
MYSQL_PASSWORD: secret
MYSQL_ROOT_PASSWORD: secret
SERVICE_TAGS: dev
SERVICE_NAME: mysql
networks:
- laravel
php:
build:
context: .
dockerfile: Dockerfile
container_name: php
volumes:
- ./src:/var/www/html
ports:
- "9000:9000"
networks:
- laravel
Dockerfile
FROM php:7.2-fpm-alpine
RUN docker-php-ext-install pdo pdo_mysql
泊坞窗容器已完美启动并正常运行,那可能是什么?
答案 0 :(得分:1)
您需要在Dockerfile中更改php版本
FROM php:7.4-fpm-alpine
RUN docker-php-ext-install pdo pdo_mysql