commit
2b399fa151
12 changed files with 420 additions and 0 deletions
-
20.gitignore
-
14README.md
-
100docker-compose.yml
-
39nginx/nginx-pghs.conf
-
33nginx/nginx-xrad.conf
-
31pghs/Dockerfile
-
12postgres/Dockerfile
-
18postgres/init.sql
-
70setup.sh
-
29xdac/Dockerfile
-
31xrad/Dockerfile
-
23xreports/Dockerfile
@ -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/* |
@ -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 |
|||
``` |
@ -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: |
@ -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; |
|||
} |
|||
} |
|||
} |
@ -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; |
|||
} |
|||
} |
|||
} |
@ -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"] |
@ -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/ |
@ -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; |
@ -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" |
@ -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"] |
@ -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"] |
@ -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"] |
Write
Preview
Loading…
Cancel
Save
Reference in new issue