Хост: Кубунту.
Докер на базе Дебиан.Dockerfile:
FROM php:5.6-apache
# Копируем конфиги виртуальных хостов
COPY conf/apache/laravel.conf /etc/apache2/sites-available/laravel.conf
COPY conf/apache/site1.conf /etc/apache2/sites-available/site1.conf
COPY conf/apache/oc.conf /etc/apache2/sites-available/oc.conf
#v Обновляем систему и ставим нужные пакеты: apache2, PHP 5.5 из стороннего репозитория, mc и утилитvzzы
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak
# Отключаем проверки даты (для архивных реп)
RUN echo 'Acquire::Check-Valid-Until "false";' > /etc/apt/apt.conf.d/10no-check-valid-until && \
echo 'Acquire::Check-Date "false";' > /etc/apt/apt.conf.d/10no-check-date
# Репозитории ARCHIVE
RUN printf "deb http://archive.debian.org/debian stretch main contrib non-free\n" \
"deb http://archive.debian.org/debian-security stretch/updates main contrib non-free\n" \
> /etc/apt/sources.list
# Делаем update (разрешаем ошибку — это нормально!)
RUN apt-get -o Acquire::Check-Valid-Until=false \
-o Acquire::Check-Date=false \
update || true
# Установка пакетов (НО: apt-get update нужно повторить с теми же флагами)
RUN apt-get -o Acquire::Check-Valid-Until=false \
-o Acquire::Check-Date=false \
update || true && \
apt-get install -y --allow-unauthenticated apache2 || true && \
apt-get install -y --allow-unauthenticated curl || true && \
apt-get install -y --allow-unauthenticated wget || true && \
apt-get install -y --allow-unauthenticated build-essential || true && \
apt-get install -y --allow-unauthenticated libxml2-dev || true && \
apt-get install -y --allow-unauthenticated libssl-dev || true && \
apt-get install -y --allow-unauthenticated libcurl4-openssl-dev || true && \
apt-get install -y --allow-unauthenticated libjpeg-dev || true && \
apt-get install -y --allow-unauthenticated libpng-dev || true && \
apt-get install -y --allow-unauthenticated libmysqlclient-dev || true && \
apt-get install -y --allow-unauthenticated mc || true && \
apt-get install -y --allow-unauthenticated vim || true && \
apt-get install -y --allow-unauthenticated unzip || true && \
apt-get install -y --allow-unauthenticated libmcrypt || true && \
apt-get install -y --allow-unauthenticated libmcrypt-dev || true
# Зависимости для php-ext-curl (Jessie)
RUN apt-get install -y --allow-unauthenticated \
libcurl4-openssl-dev \
libssl-dev \
pkg-config
RUN docker-php-ext-install mysqli
RUN docker-php-ext-install curl
RUN docker-php-ext-install pdo_mysql
RUN docker-php-ext-configure gd --with-jpeg-dir=/usr/include --with-png-dir=/usr/include && \
docker-php-ext-install gd
RUN docker-php-ext-install mcrypt
RUN docker-php-ext-install zip
# Копируем файлы сайта (опционально, можно монтировать вместо копирования)
#COPY www/ /var/www/
# Включаем виртуальные хосты
#RUN a2ensite site1.conf && a2ensite site2.conf
RUN a2ensite site1.conf
RUN a2ensite oc.conf
RUN a2ensite laravel.conf
# Включаем mod_rewrite (часто нужно для PHP приложений)
RUN a2enmod rewrite
# Устанавливаем рабочую директорию
WORKDIR /var/www
# Expose порт Apache
EXPOSE 80
# Старт Apache в фоне
CMD ["apache2-foreground"]
===============================================================
Собираю так:
docker build -t php56-appppp .
Никаких ошибок не выдает.
docker-compose.yml :
version: '3.9'
services:
php:
image: php:5.6-apache
container_name: php56-appppp
ports:
- "8080:80"
depends_on:
- db
volumes:
- /home/torsar/docker-php55/www:/var/www
extra_hosts:
- "host.docker.internal:host-gateway"
db:
image: cytopia/mysql-5.7
container_name: mysql57
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: testdb
ports:
- "3307:3306"
==========================================================
Запускаю так:
docker-compose up -d
Запускается.
Захожу в консоль контейнера:
docker exec -it php56-appppp bash
cd /etc/apache2/sites-av*
/etc/apache2/sites-available# ls -1
000-default.conf
default-ssl.conf
oc.conf
site1.conf
те строка ва докер файле:
COPY conf/apache/laravel.conf /etc/apache2/sites-available/laravel.conf
Не срабатывает!!!
Все проверил!!!
Файл:
conf/apache/laravel.conf
СУЩЕСТВУЕТ!!!
Пути прописаны правильно!!!
Регистр символов в имени файла проверил!!!
НЕ КОПИРУЕТСЯ файл.
Не могу понять почему???
Несколько дней раньше я собирал докер без строк:
COPY conf/apache/laravel.conf /etc/apache2/sites-available/laravel.conf
RUN a2ensite laravel.conf
Может закешировалось и берет старую версию контейнера???
Не пойму что за @#$!!!
В файле конфига линухов hosts прописано:
127.0.0.1 site1.local
127.0.0.1 oc.loc
127.0.0.1 laravel.loc
Остальные виртуальные хосты на хосте открываются,
кроме:
http://laravel.loc:8080/
Forbidden
You don't have permission to access this resource.
Apache/2.4.25 (Debian) Server at laravel.loc Port 8080