GIS WebServer SE (nginx-fpm)
GIS WebServer SE – ГИС для построения геопорталов различного назначения.
Автоматизирует публикацию изменяющихся пространственных данных на основе web-сервисов.
Создает новые слои данных и позволяет их редактировать.
Предоставляет доступ к данным пользователя с любого компьютера.
Создает тематические карты и картограммы.
Отображает 3D модель по открытым векторным картам, матрицам высот и снимкам местности без подготовки модели.
Выполняет поиск кратчайших маршрутов по графу дорог.
Примечание
Для функционирования требуется GIS WebService SE
Docker образ GIS WebServer SE (nginx-fpm) не содержит web-сервер, запуск осществляется в многоконтейнером окружении под управлением Docker Compose, совместно с оригинальным образом
nginx:stable
Поддерживаемые тома (volume)
gwsse (конфигурационные файлы, метаданные) - /var/Panorama/gwsse
Типы лицензий
Фиксированная аппаратная лицензия - USB ключ
Плавающая аппаратная лицензия - сервер лицензий с USB ключом
Фиксированная аппаратная лицензия предполагает наличие электронного ключа USB на каждый образ.
Плавающая аппаратная лицензия предполагает наличие в локальной сети одного электронного ключа USB и запушенного сервера лицензии, позволяющего одновременно выполнять оплаченное число копий сервиса на любых компьютерах путем поочередного подключения.
Примечание
Лицензия настраивается в GIS WebService SE
Пробрасывание volume в систему
Создать директорию проекта и перейти в неё.
Создать файл скрипта make-volume.sh для создания конфигурационных файлов.
#!/usr/bin/env bash
set -euo pipefail
DEFAULT_IMAGE="registry.gisserver.ru/giswebserverse/giswebserverse-fpm:latest"
if [[ "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then
echo "Использование: $0 [IMAGE]"
echo
echo "IMAGE — имя Docker-образа. По умолчанию:"
echo " $DEFAULT_IMAGE"
exit 0
fi
IMAGE="${1:-$DEFAULT_IMAGE}"
TEMP_CONTAINER="giswebserverse-$(date +%s%N)"
TARGET_DIR="./"
echo "==> Проверка наличия образа $IMAGE..."
if ! docker image inspect "$IMAGE" &>/dev/null; then
echo " Образ не найден локально. Загрузка..."
docker pull "$IMAGE"
fi
echo "==> Создание директорий..."
mkdir -p "$TARGET_DIR"/log/nginx
mkdir -p "$TARGET_DIR"/configs/nginx
mkdir -p "$TARGET_DIR"/gwsse
if [ "$(ls -A "$TARGET_DIR/gwsse" 2>/dev/null)" ]; then
echo "⚠ ️ Директории уже содержат файлы. Копирование пропущено."
echo "💡 Чтобы перезаписать данные, удалите содержимое $TARGET_DIR и запустите скрипт снова."
exit 0
fi
echo "==> Запуск временного контейнера..."
docker run -d --name "$TEMP_CONTAINER" "$IMAGE" tail -f /dev/null
cleanup() {
echo "==> Остановка временного контейнера..."
docker rm -f "$TEMP_CONTAINER" &>/dev/null || true
}
trap cleanup EXIT
sleep 1
echo "==> Копирование данных приложения..."
docker cp "$TEMP_CONTAINER:/var/Panorama/gwsse/." "$TARGET_DIR/gwsse/"
echo "==> Копирование конфигов nginx и php-fpm..."
docker cp "$TEMP_CONTAINER:/etc/nginx/nginx.conf" "$TARGET_DIR/configs/nginx/"
docker cp "$TEMP_CONTAINER:/etc/nginx/conf.d/default.conf" "$TARGET_DIR/configs/nginx/"
docker cp "$TEMP_CONTAINER:/etc/php/8.3/fpm/pool.d/www.conf" "$TARGET_DIR/configs/"
echo "==> Копирование завершено. Права 777..."
chmod -R 777 "$TARGET_DIR"
echo
echo "Итоговая структура:"
tree -L 3 "$TARGET_DIR" 2>/dev/null || find "$TARGET_DIR" -type f | head -40
Запустить файл make-volume.sh
./make-volume.sh registry.gisserver.ru/giswebserverse/giswebserverse-apache:latest
Скрипт скачает образ контейнера, запустит временный контейнер, скопирует необходимые конфигурационные файлы в текущую папку и удалит временный контейнер.
Запуск через Docker Compose
Создать в директории проекта файл docker-compose.yml
services:
# ===== Контейнер приложения =====
app:
image: registry.gisserver.ru/giswebserverse/giswebserverse-fpm:latest
container_name: giswebserverse
restart: unless-stopped
expose:
- "9000"
volumes:
- ./gwsse:/var/Panorama/gwsse:rw
- ./configs/www.conf:/etc/php/8.3/fpm/pool.d/www.conf:rw
- webroot:/var/www/html
networks:
- gis-net
# ===== Контейнер nginx (официальный образ) =====
nginx:
image: nginx:stable
container_name: giswebserverse-nginx
restart: unless-stopped
ports:
- "8080:80"
volumes:
- ./configs/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./configs/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
- webroot:/var/www/html:ro
- ./log/nginx:/var/log/nginx:rw
depends_on:
- app
networks:
- gis-net
volumes:
webroot:
networks:
gis-net:
driver: bridge
Запустить контейнер
docker compose up -d
Откройте браузер и перейдите по адресу:
http://localhost:8080/GISWebServerSE/index.php
Контакты: panorama@gisinfo.ru |
License: Лицензионный договор |