Answer the question
In order to leave comments, you need to log in
How to open a website with docker?
I have such a problem that it seems like I started docker and writes that all the components are done but I can’t open the site.
As I understand it, it turned on.
/Users/user/Sites/kfinp/docker-compose.yml
version: '3'
services:
webserver:
container_name: apache-php_kfnp
build:
context: docker
dockerfile: Dockerfile
environment:
XDEBUG_CONFIG: remote_host=host.docker.internal
PHP_IDE_CONFIG: serverName=localhost
ports:
- 80:80
volumes:
- ./:/var/www
links:
- db
depends_on:
- db
db:
container_name: mysql_kfnp
image: 'mysql:5.7'
command: --default-authentication-plugin=mysql_native_password --disable-partition-engine-check
restart: always
ports:
- 3336:3306
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: kfnp
MYSQL_USER: kfnp-user
MYSQL_PASSWORD: querty-123
volumes:
- /Users/user/Sites/kfinp/docker/database:/var/lib/mysql
#инструкция FROM - указывает на базе какого обараза будем собирать наш контейнер.
FROM ubuntu:latest
#инструкция RUN - указывает какую команду нужно выполнить внутри образа. обновим индекс пакетов
RUN apt-get update
RUN apt-get install -y apache2 apache2-utils curl gnupg wget
RUN a2enmod rewrite
#Инструкция ENV задает переменные окружения с именем <key> и значением <value>.
#Это значение будет находиться в окружении всех команд потомков Dockerfile и могут быть использованы как обычные переменные окружения.
ENV TZ=Europe/Moscow
#указываем временную зону для нашего образа.
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get install -y git python3 perl \
php nano
#устанавливаем php расширения
RUN apt-get install -y \
php-pdo php-pdo-mysql \
php-mbstring php-tokenizer \
php-xml php-simplexml php-zip \
php-opcache php-iconv php-intl \
php-json php-gd php-ctype php-oauth \
php-apcu php-imagick php-xdebug \
php-memcached php-ftp php-imap \
php-curl iputils-ping
#после завершения установок всех пакетов - обновим индекс
RUN apt-get update
#откроем 80 порт
EXPOSE 80
#добавим в контейнер конфигурационный файл php.ini, расположим его на стаднатрном для ubuntu месте
ADD ./conf/php/php.ini /etc/php/7.2/apache2/php.ini
#обязательно добавим конфигурации xdebug
ADD ./conf/php/xdebug.ini /etc/php/7.2/mods-available/xdebug.ini
#добавим в контейнер конфигурационный файл для apache, расположим его на стаднатрном для ubuntu месте
ADD ./conf/apache/apache2.conf /etc/apache2/apache2.conf
#удалим содержащиеся файлы в этих папках, потому что вскоре там будут наши
RUN rm -R /etc/apache2/sites-enabled/* /etc/apache2/sites-available/* /var/www/*
#добавим конфигурацонный файл для виртуального сервера
ADD ./conf/apache/admin.kfnp.dev.conf /etc/apache2/sites-enabled/admin.kfnp.dev.conf
ADD ./conf/apache/free.kfnp.dev.conf /etc/apache2/sites-enabled/free.kfnp.dev.conf
ADD ./conf/apache/kfnp24.dev.conf /etc/apache2/sites-enabled/kfnp24.dev.conf
ADD ./conf/apache/kfnp.dev.conf /etc/apache2/sites-enabled/kfnp.dev.conf
#укажим дирректорию /var/www как рабочую
WORKDIR /var/www
#запускаем процес apache2 в нормальном режиме (На переднем плане).
#Пока живет это процесс, живет и контейнер.
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
<VirtualHost *:80>
ServerName admin.kfnp.dev
ServerAdmin [email protected]
DocumentRoot /var/www/web/backend/web
<Directory "/var/www/web/backend/web/">
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question