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 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