我了解laradock,但我需要自己完成所有步骤。
我要学习Laravel,最近我同时为自己开放了docker :)
现在我需要一起加入:
docker-compose with images:
-php:7.2.2-apache
-mariadb
-phpmyadmin / phpmyadmin
-还有一些作曲家
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
图像
不知道laravel和laravel如何使用它
因为laravel将在单独的web
的控制之下
容器web_server
映像内php:7.2.2-apache
图片我已经尝试过,但开始收到错误
以下软件包具有未满足的依赖性:
作曲家:取决于: php-symfony-console(> = 2.5),但无法安装
取决于:php-symfony-filesystem(> = 2.5)但不可安装
取决于:php-symfony-finder(> = 2.4)但不可安装
取决于:php-symfony-process(> = 2.4)但不可安装
取决于:php-cli
取决于:php-common,但无法安装
取决于:php-json-schema但无法安装
取决于:php-composer-ca-bundle(> = 1.0)但不可安装
取决于:php-composer-ca-bundle(<2 ~~)但不可安装
取决于:php-composer-semver(> = 1.0)但不可安装
取决于:php-composer-semver(<2 ~~)但不可安装
取决于:php-composer-spdx-licenses(> = 1.0)但不可安装
取决于:php-composer-spdx-licenses(<2 ~~),但它不可安装
取决于:jsonlint(> = 1.4)但不会被安装
取决于:jsonlint(<2 ~~)但不会被安装
取决于:php-cli-prompt(> = 1.0)但无法安装
取决于:php-cli-prompt(<2 ~~)但无法安装
取决于:php-psr-log(> = 1.0)但无法安装
取决于:php-psr-log(<2 ~~)但无法安装
推荐:git,但是它不会被安装E:无法纠正问题,您拿着损坏的软件包。命令 '/ bin / sh -c apt更新&& apt install mc -y && apt install composer -y'返回了非零代码:100
是时候该寻求帮助了。
我应该使用哪种方式?
在单独的composer/composer
容器的情况下如何使用它
在web_server容器中以及laravel将如何使用它
php:7.2.2-apache
映像中安装作曲家的情况下
如何解决这些错误答案 0 :(得分:2)
我认为最好的选择是为composer创建一个单独的docker容器。这样就不会在您的php apache容器中混入作曲家了。
您可以在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容器仅启动一次,完成后将停止。
要运行作曲家安装,您可以使用: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"