Задать вопрос
@akdes

Laravel в Docker без шаринга файлов с хоста — 404 на css/js, почему?

Привет всем.
Готовлю мой проект для выхода в лайв с помощью CI/CD:
база на RDS, docker-compose из 2 контейнеров:
version: '2.0'
services:
  web:
    container_name: foo_web
    build:
      context: ./
      dockerfile: web.docker
    ports:
      - "8010:80"
    links:
      - app
  app:
    container_name: foo_app
    build:
      context: ./
      dockerfile: app.docker

web.docker:
FROM nginx:1.10

COPY ./vhost.conf /etc/nginx/conf.d/default.conf

WORKDIR /var/www

app.docker:
FROM php:7-fpm

RUN apt-get update && apt-get install -y libmcrypt-dev mysql-client wget git unzip curl nano \
    && docker-php-ext-install mcrypt pdo_mysql

ADD ./docker-php.ini /usr/local/etc/php/conf.d/docker-php.ini

WORKDIR /var/www

# Composer
RUN curl -sS https://getcomposer.org/installer | \
    php -- --install-dir=/usr/bin/ --filename=composer
COPY . /var/www
RUN cd /var/www
RUN composer install --no-scripts
RUN composer update
RUN chgrp -R www-data storage bootstrap/cache
RUN chmod -R ug+rwx storage bootstrap/cache


при docker-compose build собираются два контейнера с ларавел.
docker-compose up -d и пашет. Но вот перейдя по localhost.8010 я вижу страничку, но без стилей и js. В консоле пишет 404 на все подгружаемые файлы, которые у меня находятся по стандарту в public.
vhost ссылается на public:
server {
    listen 80;
    index index.php index.html;
    root /var/www/public;
...


было бы проще, если бы и index.php не открывался, но так как он грузится, соответственно доступ к public-папке есть, и тут я потерялся...

если указать в docker-compose.yml, серверу, т.е. контейнеру "web":
volumes:
- ./:/var/www
тогда работает. Но моя цель состоит в построении имэйдж на каждый контейнер и отправки на лайв сервер, без каких либо доп. файлов. Т.е. все файлы держит app-Контейнер.

Eсть идеи, в чём проблема?

UPDATE: Проблема касается только тех вещей, которые подгружаются темплэйтом, после рендеринга.
UPDATE 2: Поставил костыль - копирую папку public дополнительно в web-container. Работает, но вопрос не решён.
  • Вопрос задан
  • 945 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
@akdes Автор вопроса
Поставил костыль - копирую папку public дополнительно в web-container. Работает, но вопрос не решён.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы