Проблемы с композитором при создании образа докера из проекта laravel - PullRequest
0 голосов
/ 11 июня 2019

Я новичок в докере, но я прочитал руководства и попытался создать образ докера из моего проекта Laravel.

Команда docker, которую я выполняю:

сборка sudo docker -t docker-image.

а это мой Dockerfile:

FROM composer:1.8.5 as build
WORKDIR /app
COPY . /app
RUN composer install

FROM php:7.3-apache
EXPOSE 80
COPY --from=build /app /app
COPY vhost.conf /etc/apache2/sites-available/000-default.conf
RUN chown -R www-data:www-data /app && a2enmod rewrite

Ошибка возникает на шаге 4/9. Запустите установку composer:

[ErrorException]
file_put_contents (/ app / vendor / bin / generate-defuse-key): не удалось открыть поток: нет такого файла или каталога

файл существует в / vendor / bin /

Может кто-нибудь сказать мне, что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

Если вы хотите запустить приложение laravel с nginx, вы можете использовать следующие настройки докера.

Здесь я предположил, что ваше приложение: /var/www/laravelapp

Так чтоКопирование файла будет следующим:

1.Ваш файл docker-compose: /var/www/laravelapp/docker-compose.yml

version: "3.1"
services:
  webserver:
    image: nginx:alpine
    restart: always
    container_name: laravel-webserver
    working_dir: /application
    volumes:
        - /var/www/laravelapp:/application
        - /var/www/laravelapp/docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
    ports:
      - "82:80"
    env_file:
      - .env
    networks: 
      - intranet

  php-fpm:
    build: docker/php-fpm
    restart: always
    container_name: laravel-fpm
    working_dir: /application
    volumes:
      - /var/www/laravelapp:/application
    env_file:
      - .env
    networks: 
      - intranet

networks:
  intranet:
    external: false

2.Докер-файл Nginx /var/www/laravelapp/docker/Dockerfile

FROM phpdockerio/php71-fpm:latest

# Install selected extensions and other stuff
RUN apt-get update \
    && apt-get -y --no-install-recommends install  php7.1-mysql php7.1-mbstring php7.1-gd git \
    && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*


WORKDIR "/application"

3.Настройки хоста Nginx /var/www/laravelapp/docker/nginx/nginx.conf


server {
    listen 80 default;

    client_max_body_size 108M;

    access_log /var/log/nginx/application.access.log;


    root /application/public;
    index index.php;

    if (!-e $request_filename) {
        rewrite ^.*$ /index.php last;
    }

    location ~ \.php$ {
        fastcgi_pass php-fpm:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PHP_VALUE "error_log=/var/log/nginx/application_php_errors.log";
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
        include fastcgi_params;
    }

}

Дайте мне знать, если проблема все еще возникает.

0 голосов
/ 11 июня 2019

Я обнаружил, что проблема не в докере, не в композиторе или в Laravel, а в проблеме с мерзавцем. проблема была в том, что git не смог создать символическую ссылку, и я пропустил ошибку при проверке проекта. я нашел это, когда сделал все шаги снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...