Skip to content

Instantly share code, notes, and snippets.

@konflic
Last active April 26, 2024 15:22
Show Gist options
  • Save konflic/ecd93a4bf7666d97d62bcecbe2713e55 to your computer and use it in GitHub Desktop.
Save konflic/ecd93a4bf7666d97d62bcecbe2713e55 to your computer and use it in GitHub Desktop.
Docker-compose opencart + phpmyadmin
# OPENCART_PORT=8081 PHPADMIN_PORT=8888 LOCAL_IP=$(hostname -I | grep -o "^[0-9.]*") docker compose up -d
version: '3'
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
volumes:
- 'mariadb_data:/bitnami/mariadb'
ports:
- '3306:3306'
opencart:
image: docker.io/bitnami/opencart:4
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
volumes:
- 'opencart_data:/bitnami/opencart'
- 'opencart_storage_data:/bitnami/opencart_storage/'
depends_on:
- mariadb
volumes:
mariadb_data:
driver: local
opencart_data:
driver: local
opencart_storage_data:
driver: local
@ZemAleks
Copy link

ZemAleks commented Aug 26, 2023

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-адрес.

@ZemAleks
Copy link

ZemAleks commented Aug 29, 2023

Рабочий образ 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 пользователя для админ сервиса.

@ZemAleks
Copy link

ZemAleks commented Sep 3, 2023

Инструкция для запуска и перезапуска образа 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/"/>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment