-
-
Save konflic/ecd93a4bf7666d97d62bcecbe2713e55 to your computer and use it in GitHub Desktop.
services: | |
phpadmin: | |
image: 'phpmyadmin/phpmyadmin:latest' | |
environment: | |
- PMA_HOST=mariadb | |
- PMA_PORT=3306 | |
- PMA_USER=bn_opencart | |
ports: | |
- '${PHPADMIN_PORT}:80' | |
mariadb: | |
image: docker.io/bitnami/mariadb:11.2 | |
environment: | |
- ALLOW_EMPTY_PASSWORD=yes | |
- MARIADB_USER=bn_opencart | |
- MARIADB_DATABASE=bitnami_opencart | |
ports: | |
- '3306:3306' | |
opencart: | |
image: bitnami/opencart:4.0.2-3-debian-12-r33 | |
ports: | |
- '${OPENCART_PORT}:8080' | |
- '443:8443' | |
environment: | |
- OPENCART_HOST=${LOCAL_IP}:${OPENCART_PORT} | |
- OPENCART_DATABASE_HOST=mariadb | |
- OPENCART_DATABASE_PORT_NUMBER=3306 | |
- OPENCART_DATABASE_USER=bn_opencart | |
- OPENCART_DATABASE_NAME=bitnami_opencart | |
- ALLOW_EMPTY_PASSWORD=yes | |
depends_on: | |
- mariadb |
Для MacOS нужно узнать локальный адрес машины самостоятельно и прописать его в переменную LOCAL_IP, либо воспользоваться командой LOCAL_IP=$(ipconfig getifaddr en0)
По умолчанию пользователь:
OPENCART_USERNAME: user
OPENCART_PASSWORD: bitnami
Путь: /administration
остановить работу всех контейнеров:
$ docker-compose down
docker-compose up -d - запустить сборку приложения
docker ps - посмотреть запущенные контейнеры
docker ps -a - посмотреть все контейнеры (включая потушенные)
docker-compose down - потушить все контейнеры из docker-compose файла
docker images - показать все сборки
docker system prune -a - удалить все образы
docker volume prune - очистить кеш
For Windows powershell 5 users (next in text terminal), in my system i use Win11 and Windows Terminal based on powershell 5.
open terminal and paste command:
Get-NetAdapter
you will get list of your netadapters, choose one you need in InterfaceDescription, for example i have:
Беспроводная сеть Realtek RTL8822CE 802.11ac PCIe Adapter
Ethernet VirtualBox Host-Only Ethernet Adapter
my net adapter will be Беспроводная сеть
after this paste your adapter to next command
(Get-NetIPAddress -AddressFamily IPv4 -InterfaceAlias 'Беспроводная сеть' | Where-Object {$_.AddressFamily -eq 'IPv4'}).IPAddress
in terminal you will see your local ip adress, in my example 192.168.0.112, if you see ip address it's ok, go next step
paste this command to terminal, don't forget to use your netadapter!!!
$Env:OPENCART_PORT=8081; $Env:PHPADMIN_PORT=8888; $Env:LOCAL_IP=$(Get-NetIPAddress -AddressFamily IPv4 -InterfaceAlias 'Беспроводная сеть' | Where-Object {$_.AddressFamily -eq 'IPv4'}).IPAddress; docker-compose up -d
to see variables use this command $Env:OPENCART_PORT, $Env:PHPADMIN_PORT, $Env:LOCAL_IP
in my example i have opencart site on 192.168.0.112:8081
1) Передварительные условия, чтобы Установить образ системы OpenCart в Windows 10.
1. В Windows 10 должен быть установлен WSL2, по ссылке: [https://learn.microsoft.com/ru-ru/windows/wsl/install]
2. Остановка процесса запущенных информационных интернет-служб (IIS), которые занимают адрес [http://localhost/] 80 порта.
Существует три способа отключить IIS, с помощью терминала или в ручную:
1. способ, в открытом терминале Power Shell от администратора ввести команду:
Чтобы остановить службу активации процесса IIS Windows
iisreset -stop
Чтобы запустить службу активации процесса IIS Windows
iisreset -start
2. способ, нажать WIN+R и ввести сокращенное название оснастки mmc "inetMgr".
Путь: Панель управления\Все элементы панели управления\Администрирование\Диспетчер служб IIS.
- В поле "Управление сервером" выбираем действие "Остановить", служба будет потушена.
3. способ, через оснастку службы, для этого нажмите WIN+R и введите "services.msc".
- Находим службу IIS Admin, заходим в ее свойства через правый клик. Сразу видите тут кнопку остановить.
Активация IIS в Windows, если служба не установлена.
- Последовательно выбрать, чтобы перейти в раздел: Панель управления> Программы> Программы и компоненты.
Путь: Панель управления\Все элементы панели управления\Программы и компоненты. - Нажать на кнопку "Включение или отключение компонентов Windows", в левой части экрана.
- В открытом окне, выбрать в списке и установить флажок в чек-боксе Службы IIS и нажать кнопку ОК, чтобы установить службу, если оне не установлена.
Для установки служб IIS, потребуется перезагрузить компьютер.
2) Установить образ Bitnami Docker системы OpenCart в Windows 10.
1. Установить и запустить Docker Desktop в Win10, по ссылке: [https://www.docker.com/products/docker-desktop/]
2. Открыть терминал Power Shell от администратора.
- В терминале перейти в необходимую папку проекта, например:
cd E:\Otus\clone\otus\hw9\opencart
- Чтобы перейти в терминале WSL Linux или Ubuntu (bash) в Windows, необходимо указать путь: /mnt/<диск>
Так как файловая система ОС Unix отличается от Windows, Linux имеет иерархическую (древовидную) структуру.
где /mnt - папка для подключения (примонтирования) новых файловых систем.
/e - это диск, из Win10.
$ cd /mnt/e/Otus/clone/otus/hw9/opencart
- Команда которая выводит информацию о пространстве на всех примонтированных разделах Ubuntu (bash).
Которая выводит информацию о файловой системе ОС Unix.
$ df
- Результат:
Filesystem 1K-blocks Used Available Use% Mounted on
...
drvfsa 255999996 152896 255847100 1% /mnt/a
drvfsa 208641020 151064 208489956 1% /mnt/b
drvfsa 255999996 97201784 158798212 38% /mnt/c
drvfsa 511999996 373325544 138674452 73% /mnt/d
drvfsa 105593852 8317952 97275900 8% /mnt/e
drvfsa 673497084 319480692 354016392 48% /mnt/f
drvfsa 254335996 152852 254183144 1% /mnt/h
drvfsa 225279996 14156472 211123524 7% /mnt/i
drvfsa 225279996 151960 225128036 1% /mnt/k
drvfsa 211844092 151552 211692540 1% /mnt/p
...
3. В браузере перейти на страницу bitnami opencart в docker hub, по ссылке: [https://hub.docker.com/r/bitnami/opencart/]
- В разделе "TL;DR" скопировать ссылку и вставить в браузер, чтобы открыть страницу с информацией файла docker-compose.yml.
- ссылка: [https://raw.githubusercontent.com/bitnami/containers/main/bitnami/opencart/docker-compose.yml]
TL;DR
curl -sSL https://raw.githubusercontent.com/bitnami/containers/main/bitnami/opencart/docker-compose.yml > docker-compose.yml
docker-compose up -d
4. В Win10, в папке проекта \opencart, создать текстовый файл формата .txt и открыть его.
- Из браузера, со страницы /docker-compose.yml, выделить и скопировать всю информацию.
- Вставить скопированную информацию в созданный txt файл и сохранить.
- В папке \opencart изменить название и разрешение txt файла на "docker-compose.yml".
5. В открытом терминале Power Shell ввести команду, чтобы запустить процесс сборки приложения OpenCart:
docker-compose up -d
- Результат:
✔ opencart Pulled 5.7s
✔ mariadb 1 layers [⣿] 0B/0B Pulled 24.9s
✔ eae4bd10be85 Pull complete 17.7s
[+] Running 6/6
✔ Network opencart_default Created 0.9s
✔ Volume "opencart_opencart_data" Created 0.1s
✔ Volume "opencart_opencart_storage_data" Created 0.1s
✔ Volume "opencart_mariadb_data" Created 0.1s
✔ Container opencart-mariadb-1 Started 28.8s
✔ Container opencart-opencart-1 Started
6. В открытом терминале Power Shell ввести команду, чтобы посмотреть запущенные контейнеры (включая потушенные):
docker ps -a
- Результат:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bb2ca4edb8d8 bitnami/opencart:4 "/opt/bitnami/script…" 43 seconds ago Up 33 seconds 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp opencart-opencart-1
a324f370128c bitnami/mariadb:10.6 "/opt/bitnami/script…" About a minute ago Up 36 seconds 3306/tcp opencart-mariadb-1
7. В браузере вставляем ссылку [http://localhost/], чтобы открыть сервис OpenCart.
8. Так же можно открыть сервис OpenCart указав в браузере IP адрес по умолчанию, например: [http://172.27.0.1].
- Выяснить IP адрес можно в консоли WSL, например Ubuntu, введя команду:
$ ip a # Получить IP address, чтобы проверьте локальный IP интерфейса.
$ hostname -I # Определить IP-адрес.
Рабочий образ Bitnami Docker файла docker-compose.yml системы OpenCart в Win10.
- Запускается из папки \opencart командами.
без отображения логов
docker-compose up -d
или с отображением всех логов в терминале
docker-compose up
- Фаил docker-compose.yml
# Copyright VMware, Inc.
# SPDX-License-Identifier: APACHE-2.0
version: '2'
# version: '3.1'
services:
phpadmin:
image: phpmyadmin:5.2
environment:
- PMA_HOST=mariadb
- PMA_PORT=3306
- PMA_USER=bn_opencart
ports:
# '${PHPADMIN_PORT}:80'
- '8888:80'
# '8880:8888'
mariadb:
image: docker.io/bitnami/mariadb:10.6
environment:
# ALLOW_EMPTY_PASSWORD is recommended only for development.
- ALLOW_EMPTY_PASSWORD=yes
- MARIADB_USER=bn_opencart
- MARIADB_DATABASE=bitnami_opencart
volumes:
- 'mariadb_data:/bitnami/mariadb'
# /path/to/mariadb-persistence:/bitnami/mariadb
ports:
- '3306:3306'
opencart:
image: docker.io/bitnami/opencart:4
ports:
# '${OPENCART_PORT}:8080'
- '80:8080'
- '443:8443'
environment:
# OPENCART_HOST=${LOCAL_IP}:${OPENCART_PORT}
- OPENCART_HOST=localhost
# OPENCART_HOST=172.21.0.1
- OPENCART_DATABASE_HOST=mariadb
- OPENCART_DATABASE_PORT_NUMBER=3306
# OPENCART_PHPADMIN_PORT_NUMBER=8888
- OPENCART_DATABASE_USER=bn_opencart
- OPENCART_DATABASE_NAME=bitnami_opencart
# ALLOW_EMPTY_PASSWORD is recommended only for development.
- ALLOW_EMPTY_PASSWORD=yes
volumes:
- 'opencart_data:/bitnami/opencart'
# /path/to/opencart-persistence:/bitnami/opencart
- 'opencart_storage_data:/bitnami/opencart_storage/'
depends_on:
- mariadb
- phpadmin
volumes:
mariadb_data:
driver: local
opencart_data:
driver: local
opencart_storage_data:
driver: local
- Это команда отобразит информацию о запущенных контейнерах.
docker ps
- Результат:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2b6a336e0aaa bitnami/opencart:4 "/opt/bitnami/script…" 17 seconds ago Up 11 seconds 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp opencart-opencart-1
b2edf1b5a65a phpmyadmin:5.2 "/docker-entrypoint.…" 19 seconds ago Up 13 seconds 0.0.0.0:8888->80/tcp, opencart-phpadmin-1
ade648ce3d7e bitnami/mariadb:10.6 "/opt/bitnami/script…" 19 seconds ago Up 14 seconds 0.0.0.0:3306->3306/tcp opencart-mariadb-1
Ссылки для открытия в браузере сервисов ресурса opencart:
http://localhost:80 # главная страница сервиса OpenCart.
http://localhost:8888 # phpadmin
http://localhost/administration # главная админ страница сервиса OpenCart
http://localhost/admin # главная админ страница сервиса OpenCart
- Логин: user и пароль: bitnami пользователя для админ сервиса.
Инструкция для запуска и перезапуска образа Docker из .yml файла в Windows 10.
РАЗНЫЕ файлы .yml для разного запуска сборки образа Docker.
Запустить скаченный фаил в подсистеме (WSL) Windows для Linux Ubuntu из терминала PowerShell от администратора.
1. Первый запуск образа Docker.
Первый (чистый) запуск выполняется командой "docker-compose up" из директории где раположен .yml фаил.
Фаил .yml для первого запуска должен быть без дополнительных параметров портов и IP, таких как OPENCART_PORT, PHPADMIN_PORT, LOCAL_IP.
Дополнительные параметры портов и IP адреса, можно закомментировать знаком решетки "#" (хэштега), чтобы не удалять параметры из файла.
При необходимости дополнительные параметры можно раскомментировать после сборки, убрать знаки решеток.
Команда для запуска:
$ sudo docker-compose up -d
Пример:
...
phpadmin:
ports:
# '${PHPADMIN_PORT}:80'
- '8888:80'
...
opencart:
ports:
# '${OPENCART_PORT}:8080'
- '80:8080'
- '443:8443'
environment:
# OPENCART_HOST=${LOCAL_IP}:${OPENCART_PORT}
# OPENCART_HOST=localhost
- OPENCART_HOST=172.27.0.1
...
2. Повторный запуска образа Docker.
Прежде чем запустить пересборку контейнера с новым адресом нужно остановить запущенный образ и почистить кэш.
$ sudo su # перейти в режим Админа с root правами (с ввводом пароля).
$ sudo docker-compose up -d # для реализации сборки и «поднятия» всех сервисов приложения, для их запуска, без отображения логов.
$ sudo docker-compose down # потушить все контейнеры из файла docker-compose, а также удаляет все контейнеры и внутренние сети, связанные с этими сервисами.
$ sudo docker volume prune -a # удаляет все неиспользуемые локальные тома, удалит внешний том и очистить кеш — причём, даже если его использует какой-либо контейнер.
$ sudo docker ps # посмотреть запущенные контейнеры.
$ sudo docker ps -a # посмотреть все контейнеры (включая потушенные).
$ sudo docker images # показать образ, из которого разворачивается контейнер.
$ sudo docker inspect opencart_default # отображает подробную информацию образа Docker после обращения к конкретному контейнеру "opencart-opencart-1".
Для перезапуска образа Docker с изменением портов и адреса необходимо, уже установленый файл .yml отредактировать и раскомментировать.
Убрать решетку "#" и поставить тирэ "-", вручную в файле указать параметры OPENCART_PORT, PHPADMIN_PORT, LOCAL_IP.
И закомментировать лишние параметры портов.
Пример:
...
phpadmin:
ports:
- '${PHPADMIN_PORT}:80'
# '8888:80'
...
opencart:
ports:
- '${OPENCART_PORT}:8080'
# '80:8080'
- '443:8443'
environment:
- OPENCART_HOST=${LOCAL_IP}:${OPENCART_PORT}
# OPENCART_HOST=localhost
# OPENCART_HOST=172.27.0.1
Перезапуск выполняется командой:
$ OPENCART_PORT=8081 PHPADMIN_PORT=8888 LOCAL_IP=172.27.66.7 sudo docker-compose up -d
3. Проверить IP адрес после перезапуска.
Необходимо перепроверить локальный адрес в браузере, в панели нтструментов разразботчика Devtools при запуске системы opencart, клавиша для открытия F12.
На вкладке Network, режим all, колонка запроса Name (название) - IP адрес или localhost, раздел Response.
Далее, смотреть в HTML разметке, сверху в теге <head>
строчку <base href= .../>
, например
<base href="http://172.27.66.7:8081/"/>
Полезные команды
Для запуска приложения нужно выполнить команду (пример для ОС ubuntu):
OPENCART_PORT=8081 PHPADMIN_PORT=8888 LOCAL_IP=$(hostname -I | grep -o "^[0-9.]*") docker compose up -d
Теперь приложение будет доступно локально на порту 8081, но для обращения лучше использовать полный локальный адрес типа
192.168.*.*:8081
. Для доступа к админке базы данных использовать192.168.*.*:8888
.Для ОС Windows прописать эти переменные проще всего самостоятельно в файле docker-compose.yml
Передача переменных окружения через .env файл
Для этого нужно создать файл с названием .env рядом с файлом docker-compose.yaml и разместить в нем переменные окружения в следующем формате:
После чего просто запустить приложение
docker compose up -d
Доступы
По умолчанию:
OPENCART_USERNAME: user
OPENCART_PASSWORD: bitnami
Путь до админки: /administration