我了解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 ...
我有两个选择
  • 在这种情况下使用来自docker hub的composer/composer图像
    不知道laravel和laravel如何使用它
    因为laravel将在单独的web的控制下
    容器
  • 安装 Composer 在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"
    

    07-24 19:17
    查看更多