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
@konflic
Copy link
Author

konflic commented Apr 18, 2021

Для запуска приложения нужно выполнить команду (пример для ОС 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

@konflic
Copy link
Author

konflic commented Jul 26, 2021

Для MacOS нужно узнать локальный адрес машины самостоятельно и прописать его в переменную LOCAL_IP, либо воспользоваться командой LOCAL_IP=$(ipconfig getifaddr en0)

@konflic
Copy link
Author

konflic commented Nov 9, 2021

По умолчанию пользователь:
OPENCART_USERNAME: user
OPENCART_PASSWORD: bitnami

Путь: /administration

@Domochevskyy
Copy link

остановить работу всех контейнеров:

$ docker-compose down

@konflic
Copy link
Author

konflic commented Aug 4, 2022

docker-compose up -d - запустить сборку приложения
docker ps - посмотреть запущенные контейнеры
docker ps -a - посмотреть все контейнеры (включая потушенные)
docker-compose down - потушить все контейнеры из docker-compose файла
docker images - показать все сборки
docker system prune -a - удалить все образы
docker volume prune - очистить кеш

@underoath2013
Copy link

underoath2013 commented Jun 17, 2023

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

@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