The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"    Docker, не копируется файл кон"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на рабочей станции (Разное / Linux)
Изначальное сообщение [ Отслеживать ]

"    Docker, не копируется файл кон"  +/
Сообщение от torsar (ok), 15-Дек-25, 09:06 
Хост: Кубунту.
Докер на базе Дебиан.

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

Ответить | Правка | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру