我了解laradock,但我需要自己完成所有步骤。
我要学习Laravel,最近同一时间我为自己打开了docker :)
现在我需要一起加入:
docker-compose with images:
-php:7.2.2-apache
-mariadb
-phpmyadmin / phpmyadmin
-还有一些 Composer
laravel将在容器外部的主机上。
到目前为止,我已经从 php:7.2.2-apache 图像制作了自己的图像“web_server” 并在mod_rewrite中运行
FROM php:7.2.2-apache
RUN apt update && apt install mc -y && apt install composer -y
RUN a2enmod rewrite
我的
docker-compose.yml
看起来像version: '3'
services:
db:
image: mariadb
volumes:
- ./db:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: "secretpswd"
MYSQL_DATABASE: "test_db"
MYSQL_USER: "my_user"
MYSQL_PASSWORD: "secretpswd"
ports:
- "3306:3306"
web:
image: web_server
container_name: php_web
depends_on:
- db
volumes:
- ./www:/var/www/html/
ports:
- "80:80"
stdin_open: true
tty: true
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: pma
depends_on:
- web
- db
environment:
PMA_HOST: "db"
PMA_PORT: 3306
PMA_ARBITRARY: 1
restart: always
ports:
- 8080:80
volumes:
- ./sessions:/sessions
现在我必须安装 Composer ...
我有两个选择
composer/composer
图像不知道laravel和laravel如何使用它
因为laravel将在单独的
web
的控制下容器
web_server
镜像中,该镜像由php:7.2.2-apache
图像我已经尝试过但是开始收到错误
所以是时候寻求帮助了。
composer/composer
容器的情况下如何使用web_server容器中以及laravel如何使用它
php:7.2.2-apache
镜像内安装了 Composer ,则使用如何解决这些错误
最佳答案
我认为最好的选择是为composer创建一个单独的docker容器。这样就不会在您的php apache容器中混入 Composer 了。
您可以将以下行添加到docker-compose文件中:
composer:
restart: 'no'
container_name:composer
image: composer:latest
working_dir: /var/www/html
command: composer install -d /var/www/html
volumes:
- ./www:/var/www/html/
该卷正在composer容器和php容器中同步,因此vendor文件夹也将在两个容器之间同步。
这里有
restart: no
选项,因此当您运行docker-compose up
时,composer容器仅启动一次,完成后将停止。要运行composer安装,您可以使用:
docker-compose run composer composer install
您还可以在下一行使用该命令,以便Composer的安装速度更快。
(有关软件包的更多信息:https://github.com/hirak/prestissimo)
command: >
bash -c "composer global require hirak/prestissimo && composer install -d /var/www/html"