init
This commit is contained in:
20
.gitignore
vendored
Normal file
20
.gitignore
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
dist/*
|
||||||
|
|
||||||
|
nginx/www
|
||||||
|
|
||||||
|
xreports/*.deb
|
||||||
|
|
||||||
|
xrad/xrad
|
||||||
|
xrad/config.json
|
||||||
|
xrad/xrad.lic
|
||||||
|
|
||||||
|
xdac/*.deb
|
||||||
|
xdac/config.json
|
||||||
|
xdac/xdac
|
||||||
|
xdac/xdac.lic
|
||||||
|
|
||||||
|
pghs/pghs
|
||||||
|
pghs/pghs.lic
|
||||||
|
pghs/config.json
|
||||||
|
|
||||||
|
postgres/db/*
|
14
README.md
Normal file
14
README.md
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# Демонстрационный стенд EDU - XSQUARE-PGHS в Docker
|
||||||
|
|
||||||
|
pghs.xsquare - hostname:8001
|
||||||
|
xrad.xsquare - hostname:8002
|
||||||
|
|
||||||
|
# Установка и запуск (требуется unzip и docker compose)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
chmod +x start.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./start.sh
|
||||||
|
```
|
100
docker-compose.yml
Normal file
100
docker-compose.yml
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
services:
|
||||||
|
nginx-pghs:
|
||||||
|
image: nginx:stable
|
||||||
|
container_name: nginx-pghs
|
||||||
|
ports:
|
||||||
|
- "8001:80"
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ./dist:/dist
|
||||||
|
- ./nginx/nginx-pghs.conf:/etc/nginx/nginx.conf:ro
|
||||||
|
- ./nginx/www:/var/www:ro
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
- pghs
|
||||||
|
|
||||||
|
nginx-xrad:
|
||||||
|
image: nginx:stable
|
||||||
|
container_name: nginx-xrad
|
||||||
|
ports:
|
||||||
|
- "8002:80"
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ./dist:/dist
|
||||||
|
- ./nginx/nginx-xrad.conf:/etc/nginx/nginx.conf:ro
|
||||||
|
- ./nginx/www:/var/www:ro
|
||||||
|
links:
|
||||||
|
- xrad:xrad
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
- xrad
|
||||||
|
|
||||||
|
postgres:
|
||||||
|
build:
|
||||||
|
context: ./postgres
|
||||||
|
container_name: postgres
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
POSTGRES_PASSWORD: postgres
|
||||||
|
POSTGRES_USER: postgres
|
||||||
|
expose:
|
||||||
|
- "5432:5432"
|
||||||
|
volumes:
|
||||||
|
- ./dist:/dist
|
||||||
|
|
||||||
|
xdac:
|
||||||
|
build:
|
||||||
|
context: ./xdac
|
||||||
|
container_name: xdac
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
restart: always
|
||||||
|
expose:
|
||||||
|
- "8088:8088"
|
||||||
|
links:
|
||||||
|
- postgres:postgres
|
||||||
|
volumes:
|
||||||
|
- ./dist:/dist
|
||||||
|
|
||||||
|
pghs:
|
||||||
|
build:
|
||||||
|
context: ./pghs
|
||||||
|
container_name: pghs
|
||||||
|
expose:
|
||||||
|
- "8888:8888"
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
restart: always
|
||||||
|
links:
|
||||||
|
- postgres:postgres
|
||||||
|
volumes:
|
||||||
|
- ./dist:/dist
|
||||||
|
|
||||||
|
xrad:
|
||||||
|
build:
|
||||||
|
context: ./xrad
|
||||||
|
container_name: xrad
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
restart: always
|
||||||
|
expose:
|
||||||
|
- "8889:8889"
|
||||||
|
links:
|
||||||
|
- postgres:postgres
|
||||||
|
volumes:
|
||||||
|
- ./dist:/dist
|
||||||
|
|
||||||
|
xreports:
|
||||||
|
build:
|
||||||
|
context: ./xreports
|
||||||
|
container_name: xreports
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
expose:
|
||||||
|
- "8087:8087"
|
||||||
|
volumes:
|
||||||
|
- ./dist:/dist
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
postgres_data:
|
39
nginx/nginx-pghs.conf
Normal file
39
nginx/nginx-pghs.conf
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
worker_processes auto;
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
include /etc/nginx/mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
|
||||||
|
sendfile on;
|
||||||
|
keepalive_timeout 65;
|
||||||
|
|
||||||
|
upstream pghs_service {
|
||||||
|
server pghs:8888;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root /var/www/pghs.xsquare;
|
||||||
|
index index.html;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /pghs {
|
||||||
|
proxy_pass http://pghs_service;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /files {
|
||||||
|
alias /var/www/pghs.xsquare.files.local;
|
||||||
|
autoindex on;
|
||||||
|
allow all;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
33
nginx/nginx-xrad.conf
Normal file
33
nginx/nginx-xrad.conf
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
worker_processes auto;
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
include /etc/nginx/mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
|
||||||
|
sendfile on;
|
||||||
|
keepalive_timeout 65;
|
||||||
|
|
||||||
|
upstream xrad_service {
|
||||||
|
server xrad:8889;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root /var/www/xrad.xsquare;
|
||||||
|
index index.html;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /ds {
|
||||||
|
proxy_pass http://xrad_service;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
31
pghs/Dockerfile
Normal file
31
pghs/Dockerfile
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
FROM debian:bookworm AS base
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
apache2 \
|
||||||
|
postgresql \
|
||||||
|
unzip \
|
||||||
|
wget \
|
||||||
|
locales \
|
||||||
|
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN dpkg-reconfigure locales
|
||||||
|
|
||||||
|
FROM base AS installer
|
||||||
|
|
||||||
|
COPY . /home/dist
|
||||||
|
|
||||||
|
RUN mkdir /usr/local/xsquare.pghs
|
||||||
|
|
||||||
|
RUN cp /home/dist/config.json /usr/local/xsquare.pghs/config.json
|
||||||
|
RUN cp /home/dist/pghs /usr/local/xsquare.pghs/pghs
|
||||||
|
RUN cp /home/dist/pghs.lic /usr/local/xsquare.pghs/pghs.lic
|
||||||
|
|
||||||
|
RUN sed -i 's/"host": "127.0.0.1"/"host": "postgres"/g' /usr/local/xsquare.pghs/config.json
|
||||||
|
|
||||||
|
RUN chmod +x /usr/local/xsquare.pghs/pghs
|
||||||
|
|
||||||
|
WORKDIR /usr/local/xsquare.pghs
|
||||||
|
|
||||||
|
CMD ["/usr/local/xsquare.pghs/pghs"]
|
12
postgres/Dockerfile
Normal file
12
postgres/Dockerfile
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
FROM postgres:14 AS base
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y locales-all \
|
||||||
|
&& locale-gen ru_RU.UTF-8 \
|
||||||
|
&& update-locale LANG=ru_RU.UTF-8
|
||||||
|
|
||||||
|
ENV LANG=ru_RU.UTF-8
|
||||||
|
ENV LC_NUMERIC=ru_RU.UTF-8
|
||||||
|
|
||||||
|
COPY ./db /docker-entrypoint-initdb.d
|
||||||
|
|
||||||
|
COPY init.sql /docker-entrypoint-initdb.d/
|
18
postgres/init.sql
Normal file
18
postgres/init.sql
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
-- Create users
|
||||||
|
CREATE USER xrad_user WITH ENCRYPTED PASSWORD 'xrad_user';
|
||||||
|
CREATE USER app_user WITH ENCRYPTED PASSWORD 'app_user';
|
||||||
|
|
||||||
|
-- Grant SUPERUSER privileges
|
||||||
|
ALTER USER xrad_user WITH SUPERUSER;
|
||||||
|
ALTER USER app_user WITH SUPERUSER;
|
||||||
|
|
||||||
|
-- Create databases and set owners
|
||||||
|
CREATE DATABASE xraddb OWNER xrad_user;
|
||||||
|
CREATE DATABASE appdb OWNER app_user;
|
||||||
|
|
||||||
|
-- Restore the database dumps
|
||||||
|
\connect xraddb;
|
||||||
|
\i /docker-entrypoint-initdb.d/xraddb.xsquare.pgsql;
|
||||||
|
|
||||||
|
\connect appdb;
|
||||||
|
\i /docker-entrypoint-initdb.d/appdb.xsquare.pgsql;
|
70
setup.sh
Normal file
70
setup.sh
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
DIST_DIR="dist"
|
||||||
|
ZIP_FILE="$DIST_DIR/xsquare.lcdp.4.11.13.14.8.8_release.zip"
|
||||||
|
XREPORTS_DEB="xreports/xsquare.xreports_3.3.3.6.deb"
|
||||||
|
XDAC_DEB="xdac/xsquare.xdac_3.4.1.12.deb"
|
||||||
|
DOCKER_COMPOSE_CMD="docker compose"
|
||||||
|
|
||||||
|
echo "Готовим..."
|
||||||
|
mkdir -p $DIST_DIR
|
||||||
|
|
||||||
|
if [ ! -f "$ZIP_FILE" ]; then
|
||||||
|
echo "Скачиваю $ZIP_FILE..."
|
||||||
|
wget -q -O $ZIP_FILE https://lcdp.xsquare.ru/files/pghs/xsquare.lcdp.v4/xsquare.lcdp.4.11.13.14.8.8_release.zip
|
||||||
|
else
|
||||||
|
echo "$ZIP_FILE уже существует. Пропускаю скачивание."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "$XREPORTS_DEB" ]; then
|
||||||
|
echo "Скачиваю $XREPORTS_DEB..."
|
||||||
|
wget -q -O $XREPORTS_DEB https://lcdp.xsquare.ru/files/xreports/rpm_dep/3.3.3.6/xsquare.xreports_3.3.3.6.deb
|
||||||
|
else
|
||||||
|
echo "$XREPORTS_DEB уже существует. Пропускаю скачивание."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "$XDAC_DEB" ]; then
|
||||||
|
echo "Скачиваю $XDAC_DEB..."
|
||||||
|
wget -q -O $XDAC_DEB https://lcdp.xsquare.ru/files/xdac/3.4.1.12/xsquare.xdac_3.4.1.12.deb
|
||||||
|
else
|
||||||
|
echo "$XDAC_DEB уже существует. Пропускаю скачивание."
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Распаковка..."
|
||||||
|
unzip -q -o $ZIP_FILE -d $DIST_DIR
|
||||||
|
|
||||||
|
echo "Кладу var/www..."
|
||||||
|
cp -r dist/xsquare.lcdp.4.11.13.14.8.8_release/var/www nginx/www
|
||||||
|
|
||||||
|
echo "Кладу usr/local/xsquare.pghs..."
|
||||||
|
cp -r dist/xsquare.lcdp.4.11.13.14.8.8_release/usr/local/xsquare.pghs/* pghs/
|
||||||
|
|
||||||
|
echo "Кладу usr/local/xsquare.xdac..."
|
||||||
|
cp -r dist/xsquare.lcdp.4.11.13.14.8.8_release/usr/local/xsquare.xdac/* xdac/
|
||||||
|
|
||||||
|
echo "Кладу usr/local/xsquare.xrad..."
|
||||||
|
cp -r dist/xsquare.lcdp.4.11.13.14.8.8_release/usr/local/xsquare.xrad/* xrad/
|
||||||
|
|
||||||
|
echo "Кладу db..."
|
||||||
|
cp -r dist/xsquare.lcdp.4.11.13.14.8.8_release/db/* postgres/db/
|
||||||
|
|
||||||
|
echo "Собираю Docker..."
|
||||||
|
$DOCKER_COMPOSE_CMD up -d --build
|
||||||
|
|
||||||
|
echo "Жду PostgreSQL..."
|
||||||
|
POSTGRES_CONTAINER=$($DOCKER_COMPOSE_CMD ps -q postgres)
|
||||||
|
while ! docker exec $POSTGRES_CONTAINER pg_isready -U postgres > /dev/null 2>&1; do
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
echo "PostgreSQL готов."
|
||||||
|
|
||||||
|
echo "Настраиваю базу данных..."
|
||||||
|
docker exec -i $POSTGRES_CONTAINER psql -U xrad_user -d xraddb < $DIST_DIR/xsquare.lcdp.4.11.13.14.8.8_release/db/xraddb.xsquare.pgsql
|
||||||
|
docker exec -i $POSTGRES_CONTAINER psql -U app_user -d appdb < $DIST_DIR/xsquare.lcdp.4.11.13.14.8.8_release/db/appdb.xsquare.pgsql
|
||||||
|
|
||||||
|
echo "Установка завершена!"
|
||||||
|
|
||||||
|
echo "localhost:8001 - Демо стенд - XSQUARE - EDU v.4.11"
|
||||||
|
echo "localhost:8002 - xRad Builder"
|
29
xdac/Dockerfile
Normal file
29
xdac/Dockerfile
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
FROM debian:bookworm AS base
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
apache2 \
|
||||||
|
postgresql \
|
||||||
|
unzip \
|
||||||
|
wget \
|
||||||
|
locales \
|
||||||
|
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN dpkg-reconfigure locales
|
||||||
|
|
||||||
|
FROM base AS installer
|
||||||
|
|
||||||
|
COPY . /home/dist
|
||||||
|
|
||||||
|
RUN dpkg -i /home/dist/xsquare.xdac_3.4.1.12.deb
|
||||||
|
|
||||||
|
RUN cp /home/dist/config.json /usr/local/xsquare.xdac/config.json
|
||||||
|
RUN cp /home/dist/xdac /usr/local/xsquare.xdac/xdac
|
||||||
|
RUN cp /home/dist/xdac.lic /usr/local/xsquare.xdac/xdac.lic
|
||||||
|
|
||||||
|
RUN sed -i 's/"domain": "localhost"/"domain": "postgres"/' /usr/local/xsquare.xdac/config.json
|
||||||
|
|
||||||
|
WORKDIR /usr/local/xsquare.xdac
|
||||||
|
|
||||||
|
CMD ["/usr/local/xsquare.xdac/xdac"]
|
31
xrad/Dockerfile
Normal file
31
xrad/Dockerfile
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
FROM debian:bookworm AS base
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
apache2 \
|
||||||
|
postgresql \
|
||||||
|
unzip \
|
||||||
|
wget \
|
||||||
|
locales \
|
||||||
|
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN dpkg-reconfigure locales
|
||||||
|
|
||||||
|
FROM base AS installer
|
||||||
|
|
||||||
|
COPY . /home/dist
|
||||||
|
|
||||||
|
RUN mkdir /usr/local/xsquare.xrad
|
||||||
|
|
||||||
|
RUN cp /home/dist/config.json /usr/local/xsquare.xrad/config.json
|
||||||
|
RUN cp /home/dist/xrad /usr/local/xsquare.xrad/xrad
|
||||||
|
RUN cp /home/dist/xrad.lic /usr/local/xsquare.xrad/xrad.lic
|
||||||
|
|
||||||
|
RUN sed -i 's/"host": "127.0.0.1"/"host": "postgres"/' /usr/local/xsquare.xrad/config.json
|
||||||
|
|
||||||
|
RUN chmod +x /usr/local/xsquare.xrad/xrad
|
||||||
|
|
||||||
|
WORKDIR /usr/local/xsquare.xrad
|
||||||
|
|
||||||
|
CMD ["/usr/local/xsquare.xrad/xrad"]
|
23
xreports/Dockerfile
Normal file
23
xreports/Dockerfile
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
FROM debian:bookworm AS base
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
apache2 \
|
||||||
|
postgresql \
|
||||||
|
unzip \
|
||||||
|
wget \
|
||||||
|
locales \
|
||||||
|
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN dpkg-reconfigure locales
|
||||||
|
|
||||||
|
FROM base AS installer
|
||||||
|
|
||||||
|
COPY . /home/dist
|
||||||
|
|
||||||
|
RUN dpkg -i /home/dist/xsquare.xreports_3.3.3.6.deb
|
||||||
|
|
||||||
|
WORKDIR /usr/local/xsquare.xreports
|
||||||
|
|
||||||
|
CMD ["/usr/local/xsquare.xreports/xreports"]
|
Reference in New Issue
Block a user