#php #laravel #docker #docker-compose
Вопрос:
Я установил среду Docker для Laravel
проекта с Docker-compose
помощью на Windows 10
компьютере:
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: laravel MYSQL_USER: admin MYSQL_PASSWORD: password MYSQL_ROOT_PASSWORD: password 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:8.0-fpm-alpine RUN docker-php-ext-install pdo pdo_mysql
Все работает нормально. Однако у меня возникли трудности с пониманием того, как работать artisan
. Судя по тому, что я видел в Интернете, мне следует бежать docker-compose exec php php /var/www/html/artisan ...
. Но я получаю это сообщение от Docker
:
`Could not open input file: C:/Users/lharr/AppData/Local/Programs/Git/var/www/html/artisan`
что делает бессмысленным, поскольку этого пути не существует. Но зачем Docker
идти в этот конкретный репозиторий C:/Users/lharr/AppData/Local/Programs/Git/
? и разве тома, определенные в Docker-compose
, не должны создавать /var/www/html/artisan
репозиторий ? Как я могу узнать, где PHP
хранится и как я могу правильно выполнить artisan
команду внутри этого контейнера ?
Комментарии:
1. Вы пробовали обернуть команду
"
такdocker exec php "php /var/www/html/artisan ..."
2. @Дух Тот же результат.
3. Другой вариант-подключиться к контейнеру и выполнить команду внутри:
docker exec -it php sh
Ответ №1:
Оказывается, решение этой проблемы было довольно простым : нет необходимости указывать полный путь к artisan
при выполнении команды. Значения вместо docker-compose exec php php /var/www/html/artisan ...
docker-compose exec php php artisan
этого достаточно.