From f3c6f1e70bb740cc11b29e9ade198ba333e76273 Mon Sep 17 00:00:00 2001
From: fafa_junhe <842355358@qq.com>
Date: Wed, 19 Jun 2024 19:23:01 +0800
Subject: [PATCH] docker
---
.gitignore | 3 +-
app-dm/.dockerignore | 3 +
app-dm/Dockerfile | 14 ++
app-dm/package.json | 2 +-
build.sh | 3 +
docker-compose.yml | 47 +++++++
docker/base-dm/Dockerfile | 35 +++++
docker/build-dmpython/Dockerfile | 7 +
docker/build-dmpython/auto_install.xml | 122 ++++++++++++++++++
.../.dockerignore | 0
.../.editorconfig | 0
.../.gitignore | 0
.../Dockerfile | 0
.../Jenkinsfile | 0
.../LICENSE | 0
.../README.md | 0
.../jenkins-vars.yml | 0
.../package_versions.txt | 0
.../readme-vars.yml | 0
.../dependencies.d/init-config | 0
.../s6-overlay/s6-rc.d/init-code-server/run | 0
.../s6-overlay/s6-rc.d/init-code-server/type | 0
.../s6-overlay/s6-rc.d/init-code-server/up | 0
.../dependencies.d/init-code-server | 0
.../dependencies.d/init-services | 0
.../s6-rc.d/svc-code-server/notification-fd | 0
.../s6-overlay/s6-rc.d/svc-code-server/run | 0
.../s6-overlay/s6-rc.d/svc-code-server/type | 0
.../s6-rc.d/user/contents.d/init-code-server | 0
.../s6-rc.d/user/contents.d/svc-code-server | 0
.../root/usr/local/bin/install-extension | 0
docker/nginx/Dockerfile | 32 +++++
docker/nginx/default.conf | 29 +++++
docker/nginx/nginx.conf | 50 +++++++
docker/nginx/start.sh | 2 +
.../Dockerfile | 10 +-
python/Dockerfile | 33 +++++
python/{main.py => app.py} | 13 +-
python/requirements.txt | 4 +
python/student_func.py | 2 +-
python/teacher_func.py | 2 +-
python/test.py | 6 -
python/wsgi.py | 5 +
43 files changed, 406 insertions(+), 18 deletions(-)
create mode 100755 app-dm/.dockerignore
create mode 100755 app-dm/Dockerfile
create mode 100755 build.sh
create mode 100755 docker-compose.yml
create mode 100755 docker/base-dm/Dockerfile
create mode 100755 docker/build-dmpython/Dockerfile
create mode 100755 docker/build-dmpython/auto_install.xml
rename docker/{docker-code-server => code-server}/.dockerignore (100%)
rename docker/{docker-code-server => code-server}/.editorconfig (100%)
rename docker/{docker-code-server => code-server}/.gitignore (100%)
rename docker/{docker-code-server => code-server}/Dockerfile (100%)
rename docker/{docker-code-server => code-server}/Jenkinsfile (100%)
rename docker/{docker-code-server => code-server}/LICENSE (100%)
rename docker/{docker-code-server => code-server}/README.md (100%)
rename docker/{docker-code-server => code-server}/jenkins-vars.yml (100%)
rename docker/{docker-code-server => code-server}/package_versions.txt (100%)
rename docker/{docker-code-server => code-server}/readme-vars.yml (100%)
rename docker/{docker-code-server => code-server}/root/etc/s6-overlay/s6-rc.d/init-code-server/dependencies.d/init-config (100%)
rename docker/{docker-code-server => code-server}/root/etc/s6-overlay/s6-rc.d/init-code-server/run (100%)
rename docker/{docker-code-server => code-server}/root/etc/s6-overlay/s6-rc.d/init-code-server/type (100%)
rename docker/{docker-code-server => code-server}/root/etc/s6-overlay/s6-rc.d/init-code-server/up (100%)
rename docker/{docker-code-server => code-server}/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-code-server (100%)
rename docker/{docker-code-server => code-server}/root/etc/s6-overlay/s6-rc.d/svc-code-server/dependencies.d/init-services (100%)
rename docker/{docker-code-server => code-server}/root/etc/s6-overlay/s6-rc.d/svc-code-server/notification-fd (100%)
rename docker/{docker-code-server => code-server}/root/etc/s6-overlay/s6-rc.d/svc-code-server/run (100%)
rename docker/{docker-code-server => code-server}/root/etc/s6-overlay/s6-rc.d/svc-code-server/type (100%)
rename docker/{docker-code-server => code-server}/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-code-server (100%)
rename docker/{docker-code-server => code-server}/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-code-server (100%)
rename docker/{docker-code-server => code-server}/root/usr/local/bin/install-extension (100%)
create mode 100755 docker/nginx/Dockerfile
create mode 100755 docker/nginx/default.conf
create mode 100755 docker/nginx/nginx.conf
create mode 100755 docker/nginx/start.sh
rename docker/{docker-ssh-server => ssh-server}/Dockerfile (74%)
create mode 100755 python/Dockerfile
rename python/{main.py => app.py} (93%)
create mode 100755 python/requirements.txt
delete mode 100755 python/test.py
create mode 100755 python/wsgi.py
diff --git a/.gitignore b/.gitignore
index 4dba3ed..cdd94a1 100755
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
.idea
node_modules
-__pycache__
\ No newline at end of file
+__pycache__
+public
\ No newline at end of file
diff --git a/app-dm/.dockerignore b/app-dm/.dockerignore
new file mode 100755
index 0000000..4dba3ed
--- /dev/null
+++ b/app-dm/.dockerignore
@@ -0,0 +1,3 @@
+.idea
+node_modules
+__pycache__
\ No newline at end of file
diff --git a/app-dm/Dockerfile b/app-dm/Dockerfile
new file mode 100755
index 0000000..00356e0
--- /dev/null
+++ b/app-dm/Dockerfile
@@ -0,0 +1,14 @@
+FROM node:22 AS builder
+
+WORKDIR /usr/src/app
+
+COPY package.json package-lock.json ./
+
+RUN npm config set registry https://registry.npmmirror.com
+
+RUN npm install
+
+COPY . ./
+
+#RUN NODE_OPTIONS=--max_old_space_size=8192 yarn build
+RUN npm run build
diff --git a/app-dm/package.json b/app-dm/package.json
index 9d38bc0..ccc49a9 100755
--- a/app-dm/package.json
+++ b/app-dm/package.json
@@ -44,7 +44,7 @@
"start": "react-scripts start",
"test": "react-scripts test",
"eject": "react-scripts eject",
- "build": "postcss src/style.css -o dist/tailwind.css"
+ "build": "react-scripts build"
},
"eslintConfig": {
"extends": [
diff --git a/build.sh b/build.sh
new file mode 100755
index 0000000..cd973f0
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,3 @@
+docker compose build
+docker compose build build-dmpython
+docker compose build build-frontend
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100755
index 0000000..a00f43d
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,47 @@
+
+services:
+ base-dm:
+ build: ./docker/base-dm
+ image: base-dm
+
+ build-dmpython:
+ build: ./docker/build-dmpython
+ image: build-dmpython
+ depends_on:
+ - base-dm
+
+ build-frontend:
+ build: ./app-dm
+ image: build-frontend
+
+ flask-app:
+ build: ./python
+ restart: always
+ depends_on:
+ - base-dm
+ ports:
+ - '8000:8000'
+ healthcheck:
+ test: ["CMD-SHELL", "curl --silent --fail localhost:8000/flask-health-check || exit 1"]
+ interval: 10s
+ timeout: 10s
+ retries: 3
+ command: gunicorn -w 3 -t 60 -b 0.0.0.0:8000 app:app
+
+ nginx-proxy:
+ build: ./docker/nginx
+ restart: always
+ volumes:
+ - ./docker/nginx/default.conf:/tmp/default.conf
+ environment:
+ - FLASK_SERVER_ADDR=flask-app:8000
+ ports:
+ - "80:80"
+ depends_on:
+ - flask-app
+ healthcheck:
+ test: ["CMD-SHELL", "curl --silent --fail localhost:80/health-check || exit 1"]
+ interval: 10s
+ timeout: 10s
+ retries: 3
+ command: /app/start.sh
diff --git a/docker/base-dm/Dockerfile b/docker/base-dm/Dockerfile
new file mode 100755
index 0000000..ad460c9
--- /dev/null
+++ b/docker/base-dm/Dockerfile
@@ -0,0 +1,35 @@
+FROM ubuntu
+# apt安装时,防止卡死在交互界面
+ENV DEBIAN_FRONTEND=noninteractive
+ENV LANG=zh_CN.UTF-8
+ENV LC_ALL=zh_CN.UTF-8
+# 基础软件安装
+RUN sed -i 's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list \
+&& apt-get -y update && apt-get -y upgrade \
+&& apt-get install -y python3.10-venv libssl-dev sudo vim python3-pip ssh wget unzip p7zip* language-pack-zh-hans language-selector-common locales locales-all \
+# 设置中文环境
+&& apt install -y $(check-language-support) \
+&& echo "zh_CN.UTF-8 UTF-8" >> /etc/locale.gen \
+&& sudo /usr/sbin/update-locale LANG=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8 \
+&& locale-gen \
+# 添加用户
+&& useradd -m -s /bin/bash dmdba \
+# 修改用户密码
+&& echo "dmdba:123456" | chpasswd \
+&& pip config set global.index-url https://mirrors.bfsu.edu.cn/pypi/web/simple \
+&& echo "**** clean up ****" && \
+apt-get clean && \
+rm -rf \
+ /config/* \
+ /tmp/* \
+ /var/lib/apt/lists/* \
+ /var/tmp/*
+# 传入安装包并解压
+WORKDIR /home/dmdba
+RUN wget https://download.dameng.com/eco/adapter/DM8/202405/dm8_20240408_x86_rh7_64_ent_8.1.3.140.zip
+RUN unzip dm8_20240408_x86_rh7_64_ent_8.1.3.140.zip \
+&& chown -R dmdba:dmdba /home/dmdba \
+&& rm -f dm8_20240408_x86_rh7_64_ent_8.1.3.140.zip \
+&& 7z x dm8_20240408_x86_rh7_64.iso \
+&& rm -f dm8_20240408_x86_rh7_64.iso \
+&& chmod +x DMInstall.bin
\ No newline at end of file
diff --git a/docker/build-dmpython/Dockerfile b/docker/build-dmpython/Dockerfile
new file mode 100755
index 0000000..ccd5865
--- /dev/null
+++ b/docker/build-dmpython/Dockerfile
@@ -0,0 +1,7 @@
+FROM base-dm
+WORKDIR /home/dmdba
+COPY auto_install.xml .
+RUN ./DMInstall.bin -q /home/dmdba/auto_install.xml
+# 编译
+WORKDIR /home/dmdba/dmdbms/drivers/python/dmPython
+RUN DM_HOME=/home/dmdba/dmdbms python3 setup.py bdist_wheel && mkdir /home/dmdba/build_artifacts && cp dist/dmPython-2.5.5-cp310-cp310-linux_x86_64.whl /home/dmdba/build_artifacts/ && cp /home/dmdba/dmdbms/bin/libdmdpi.so /home/dmdba/build_artifacts/
diff --git a/docker/build-dmpython/auto_install.xml b/docker/build-dmpython/auto_install.xml
new file mode 100755
index 0000000..7a68ff0
--- /dev/null
+++ b/docker/build-dmpython/auto_install.xml
@@ -0,0 +1,122 @@
+
+
+
+ ZH
+
+
+ +08:00
+
+
+
+
+
+ 0
+
+
+ /home/dmdba/dmdbms
+
+
+ y
+
+
+
+
+ /home/dmdba/dmdbms/data
+
+
+ DAMENG
+
+
+ DMSERVER
+
+
+ 5236
+
+
+
+
+
+
+
+
+
+
+
+ 16
+
+
+ 8
+
+
+ 256
+
+
+ Y
+
+
+ 0
+
+
+ 0
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +08:00
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+ Y
+
+
+ N
+
\ No newline at end of file
diff --git a/docker/docker-code-server/.dockerignore b/docker/code-server/.dockerignore
similarity index 100%
rename from docker/docker-code-server/.dockerignore
rename to docker/code-server/.dockerignore
diff --git a/docker/docker-code-server/.editorconfig b/docker/code-server/.editorconfig
similarity index 100%
rename from docker/docker-code-server/.editorconfig
rename to docker/code-server/.editorconfig
diff --git a/docker/docker-code-server/.gitignore b/docker/code-server/.gitignore
similarity index 100%
rename from docker/docker-code-server/.gitignore
rename to docker/code-server/.gitignore
diff --git a/docker/docker-code-server/Dockerfile b/docker/code-server/Dockerfile
similarity index 100%
rename from docker/docker-code-server/Dockerfile
rename to docker/code-server/Dockerfile
diff --git a/docker/docker-code-server/Jenkinsfile b/docker/code-server/Jenkinsfile
similarity index 100%
rename from docker/docker-code-server/Jenkinsfile
rename to docker/code-server/Jenkinsfile
diff --git a/docker/docker-code-server/LICENSE b/docker/code-server/LICENSE
similarity index 100%
rename from docker/docker-code-server/LICENSE
rename to docker/code-server/LICENSE
diff --git a/docker/docker-code-server/README.md b/docker/code-server/README.md
similarity index 100%
rename from docker/docker-code-server/README.md
rename to docker/code-server/README.md
diff --git a/docker/docker-code-server/jenkins-vars.yml b/docker/code-server/jenkins-vars.yml
similarity index 100%
rename from docker/docker-code-server/jenkins-vars.yml
rename to docker/code-server/jenkins-vars.yml
diff --git a/docker/docker-code-server/package_versions.txt b/docker/code-server/package_versions.txt
similarity index 100%
rename from docker/docker-code-server/package_versions.txt
rename to docker/code-server/package_versions.txt
diff --git a/docker/docker-code-server/readme-vars.yml b/docker/code-server/readme-vars.yml
similarity index 100%
rename from docker/docker-code-server/readme-vars.yml
rename to docker/code-server/readme-vars.yml
diff --git a/docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/init-code-server/dependencies.d/init-config b/docker/code-server/root/etc/s6-overlay/s6-rc.d/init-code-server/dependencies.d/init-config
similarity index 100%
rename from docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/init-code-server/dependencies.d/init-config
rename to docker/code-server/root/etc/s6-overlay/s6-rc.d/init-code-server/dependencies.d/init-config
diff --git a/docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/init-code-server/run b/docker/code-server/root/etc/s6-overlay/s6-rc.d/init-code-server/run
similarity index 100%
rename from docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/init-code-server/run
rename to docker/code-server/root/etc/s6-overlay/s6-rc.d/init-code-server/run
diff --git a/docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/init-code-server/type b/docker/code-server/root/etc/s6-overlay/s6-rc.d/init-code-server/type
similarity index 100%
rename from docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/init-code-server/type
rename to docker/code-server/root/etc/s6-overlay/s6-rc.d/init-code-server/type
diff --git a/docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/init-code-server/up b/docker/code-server/root/etc/s6-overlay/s6-rc.d/init-code-server/up
similarity index 100%
rename from docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/init-code-server/up
rename to docker/code-server/root/etc/s6-overlay/s6-rc.d/init-code-server/up
diff --git a/docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-code-server b/docker/code-server/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-code-server
similarity index 100%
rename from docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-code-server
rename to docker/code-server/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-code-server
diff --git a/docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/svc-code-server/dependencies.d/init-services b/docker/code-server/root/etc/s6-overlay/s6-rc.d/svc-code-server/dependencies.d/init-services
similarity index 100%
rename from docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/svc-code-server/dependencies.d/init-services
rename to docker/code-server/root/etc/s6-overlay/s6-rc.d/svc-code-server/dependencies.d/init-services
diff --git a/docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/svc-code-server/notification-fd b/docker/code-server/root/etc/s6-overlay/s6-rc.d/svc-code-server/notification-fd
similarity index 100%
rename from docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/svc-code-server/notification-fd
rename to docker/code-server/root/etc/s6-overlay/s6-rc.d/svc-code-server/notification-fd
diff --git a/docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/svc-code-server/run b/docker/code-server/root/etc/s6-overlay/s6-rc.d/svc-code-server/run
similarity index 100%
rename from docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/svc-code-server/run
rename to docker/code-server/root/etc/s6-overlay/s6-rc.d/svc-code-server/run
diff --git a/docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/svc-code-server/type b/docker/code-server/root/etc/s6-overlay/s6-rc.d/svc-code-server/type
similarity index 100%
rename from docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/svc-code-server/type
rename to docker/code-server/root/etc/s6-overlay/s6-rc.d/svc-code-server/type
diff --git a/docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-code-server b/docker/code-server/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-code-server
similarity index 100%
rename from docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-code-server
rename to docker/code-server/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-code-server
diff --git a/docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-code-server b/docker/code-server/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-code-server
similarity index 100%
rename from docker/docker-code-server/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-code-server
rename to docker/code-server/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-code-server
diff --git a/docker/docker-code-server/root/usr/local/bin/install-extension b/docker/code-server/root/usr/local/bin/install-extension
similarity index 100%
rename from docker/docker-code-server/root/usr/local/bin/install-extension
rename to docker/code-server/root/usr/local/bin/install-extension
diff --git a/docker/nginx/Dockerfile b/docker/nginx/Dockerfile
new file mode 100755
index 0000000..08a5997
--- /dev/null
+++ b/docker/nginx/Dockerfile
@@ -0,0 +1,32 @@
+FROM nginx:1.19.7-alpine
+
+# Add bash for boot cmd
+RUN apk add bash
+
+# Add nginx.conf to container
+COPY --chown=nginx:nginx nginx.conf /etc/nginx/nginx.conf
+COPY --chown=nginx:nginx start.sh /app/start.sh
+
+# set workdir
+WORKDIR /app
+
+# permissions and nginx user for tightened security
+RUN chown -R nginx:nginx /app && chmod -R 755 /app && \
+ chown -R nginx:nginx /var/cache/nginx && \
+ chown -R nginx:nginx /var/log/nginx && \
+ chmod -R 755 /var/log/nginx; \
+ chown -R nginx:nginx /etc/nginx/conf.d
+RUN touch /var/run/nginx.pid && chown -R nginx:nginx /var/run/nginx.pid
+
+# # Uncomment to keep the nginx logs inside the container - Leave commented for logging to stdout and stderr
+# RUN mkdir -p /var/log/nginx
+# RUN unlink /var/log/nginx/access.log \
+# && unlink /var/log/nginx/error.log \
+# && touch /var/log/nginx/access.log \
+# && touch /var/log/nginx/error.log \
+# && chown nginx /var/log/nginx/*log \
+# && chmod 644 /var/log/nginx/*log
+
+USER nginx
+
+CMD ["nginx", "-g", "'daemon off;'"]
\ No newline at end of file
diff --git a/docker/nginx/default.conf b/docker/nginx/default.conf
new file mode 100755
index 0000000..686961a
--- /dev/null
+++ b/docker/nginx/default.conf
@@ -0,0 +1,29 @@
+proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache:10m max_size=500m inactive=60m use_temp_path=off;
+
+server {
+ listen 80;
+
+ location / {
+ proxy_pass http://$FLASK_SERVER_ADDR;
+ 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 /cache-me {
+ proxy_pass http://$FLASK_SERVER_ADDR;
+ proxy_cache cache;
+ proxy_cache_lock on;
+ proxy_cache_valid 200 30s;
+ proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
+ proxy_cache_revalidate on;
+ proxy_cache_background_update on;
+ expires 20s;
+ }
+
+ location /health-check {
+ add_header Content-Type text/plain;
+ return 200 "success";
+ }
+
+}
\ No newline at end of file
diff --git a/docker/nginx/nginx.conf b/docker/nginx/nginx.conf
new file mode 100755
index 0000000..a6121ff
--- /dev/null
+++ b/docker/nginx/nginx.conf
@@ -0,0 +1,50 @@
+worker_processes auto;
+pid /var/run/nginx.pid;
+
+events {
+ worker_connections 1024;
+}
+
+http {
+ include /etc/nginx/mime.types;
+ default_type application/octet-stream;
+
+ # Define the format of log messages.
+ log_format main_ext '$remote_addr - $remote_user [$time_local] "$request" '
+ '$status $body_bytes_sent "$http_referer" '
+ '"$http_user_agent" "$http_x_forwarded_for" '
+ '"$host" sn="$server_name" '
+ 'rt=$request_time '
+ 'ua="$upstream_addr" us="$upstream_status" '
+ 'ut="$upstream_response_time" ul="$upstream_response_length" '
+ 'cs=$upstream_cache_status' ;
+
+ access_log /var/log/nginx/access.log main_ext;
+ error_log /var/log/nginx/error.log warn;
+
+ sendfile on;
+
+ keepalive_timeout 65;
+
+ # Enable Compression
+ gzip on;
+
+ # Disable Display of NGINX Version
+ server_tokens off;
+
+ # Size Limits
+ client_body_buffer_size 10K;
+ client_header_buffer_size 1k;
+ client_max_body_size 8m;
+ large_client_header_buffers 2 1k;
+
+ # # SSL / TLS Settings - Suggested for Security
+ # ssl_protocols TLSv1.2 TLSv1.3;
+ # ssl_session_timeout 15m;
+ # ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
+ # ssl_prefer_server_ciphers on;
+ # ssl_session_tickets off;
+
+ include /etc/nginx/conf.d/*.conf;
+
+}
\ No newline at end of file
diff --git a/docker/nginx/start.sh b/docker/nginx/start.sh
new file mode 100755
index 0000000..d3c7ac2
--- /dev/null
+++ b/docker/nginx/start.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+envsubst '$FLASK_SERVER_ADDR' < /tmp/default.conf > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'
\ No newline at end of file
diff --git a/docker/docker-ssh-server/Dockerfile b/docker/ssh-server/Dockerfile
similarity index 74%
rename from docker/docker-ssh-server/Dockerfile
rename to docker/ssh-server/Dockerfile
index 152f312..048c94f 100755
--- a/docker/docker-ssh-server/Dockerfile
+++ b/docker/ssh-server/Dockerfile
@@ -16,11 +16,11 @@ RUN sed -i 's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.l
# 修改用户密码
&& echo "dmdba:123456" | chpasswd
# 传入安装包并解压
-COPY ./data/dm8.zip /home/dmdba
-RUN cd /home/dmdba \
-&& unzip dm8.zip \
+WORKDIR /home/dmdba
+RUN wget https://download.dameng.com/eco/adapter/DM8/202405/dm8_20240408_x86_rh7_64_ent_8.1.3.140.zip
+RUN unzip dm8_20240408_x86_rh7_64_ent_8.1.3.140.zip \
&& chown -R dmdba:dmdba /home/dmdba \
-&& rm -f dm8.zip \
+&& rm -f dm8_20240408_x86_rh7_64_ent_8.1.3.140.zip \
&& 7z x dm8_20240408_x86_rh7_64.iso \
&& rm -f dm8_20240408_x86_rh7_64.iso \
-&& chmod +x DMInstall.bin
\ No newline at end of file
+&& chmod +x DMInstall.bin
diff --git a/python/Dockerfile b/python/Dockerfile
new file mode 100755
index 0000000..ac80947
--- /dev/null
+++ b/python/Dockerfile
@@ -0,0 +1,33 @@
+FROM base-dm
+
+# 升级pip
+RUN pip install --upgrade pip
+
+# 创建一个用户运行flask
+RUN adduser flask
+RUN chown -R flask:flask /home/flask
+RUN mkdir -p /var/log/flask-app && touch /var/log/flask-app/flask-app.err.log && touch /var/log/flask-app/flask-app.out.log
+RUN chown -R flask:flask /var/log/flask-app
+WORKDIR /home/flask
+USER flask
+
+# 复制
+COPY --chown=flask:flask . .
+
+# venv
+ENV VIRTUAL_ENV=/home/flask/venv
+
+# 安装包
+RUN python3 -m venv "$VIRTUAL_ENV"
+ENV PATH="$VIRTUAL_ENV/bin:$PATH"
+RUN export FLASK_APP=main.py
+COPY --from=build-dmpython --chown=flask:flask /home/dmdba/build_artifacts/dmPython-2.5.5-cp310-cp310-linux_x86_64.whl .
+COPY --from=build-dmpython /home/dmdba/build_artifacts/libdmdpi.so /usr/lib/
+COPY --from=build-frontend /usr/src/app/build/ /home/flask/public/
+RUN pip3 install dmPython-2.5.5-cp310-cp310-linux_x86_64.whl && rm dmPython-2.5.5-cp310-cp310-linux_x86_64.whl
+RUN MAKEFLAGS="-j$(nproc)" pip install -r requirements.txt
+USER root
+# 暴露端口
+EXPOSE 5000
+
+CMD ["python", "main.py"]
\ No newline at end of file
diff --git a/python/main.py b/python/app.py
similarity index 93%
rename from python/main.py
rename to python/app.py
index 874fc74..df6673a 100755
--- a/python/main.py
+++ b/python/app.py
@@ -1,9 +1,9 @@
from teacher_func import *
from student_func import *
-from flask import Flask, request, jsonify, session, redirect
+from flask import Flask, render_template, request, jsonify, send_from_directory, session
from flask_cors import CORS
-app = Flask(__name__)
+app = Flask(__name__, static_folder="public")
CORS(app, resources={r"/*": {"origins": "*"}})
app.config['SECRET_KEY'] = '350625'
@@ -209,6 +209,13 @@ def SendTrainTest():
SendTrainTestFunc(TrainChoice, TrainCompletion, TrainJudge, Hour, Min, StopTime,Class,Train,teacher_id)
return '发布成功'
+@app.route('/')
+@app.route('/')
+def catch_all(path = "index.html"):
+ return send_from_directory("public", path)
+
+
+
if __name__ == '__main__':
- app.run(host='127.0.0.1', port=5000, debug=True)
+ app.run(host='0.0.0.0', port=5000, debug=True)
diff --git a/python/requirements.txt b/python/requirements.txt
new file mode 100755
index 0000000..1eddad4
--- /dev/null
+++ b/python/requirements.txt
@@ -0,0 +1,4 @@
+Flask==2.3.0
+Flask_Cors==4.0.0
+pycryptodome==3.19.0
+gunicorn
\ No newline at end of file
diff --git a/python/student_func.py b/python/student_func.py
index cb4c8d8..5cc7bcf 100755
--- a/python/student_func.py
+++ b/python/student_func.py
@@ -4,7 +4,7 @@ from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
import base64
-db = dmPython.connect(user='SYSDBA', password='SYSDBA')
+db = dmPython.connect(user='SYSDBA', password='dameng!!', host="36.138.114.105", port="32522")
def pad(data):
diff --git a/python/teacher_func.py b/python/teacher_func.py
index 537c356..acd83c4 100755
--- a/python/teacher_func.py
+++ b/python/teacher_func.py
@@ -6,7 +6,7 @@ import base64
import datetime
-db = dmPython.connect(user='SYSDBA', password='SYSDBA')
+db = dmPython.connect(user='SYSDBA', password='dameng!!', host="36.138.114.105", port="32522")
#获取题目
def choice_question_func(ID):
diff --git a/python/test.py b/python/test.py
deleted file mode 100755
index ac4437b..0000000
--- a/python/test.py
+++ /dev/null
@@ -1,6 +0,0 @@
-my_dict = {'name': 'Tom', 'age': 18, 'gender': 'ale'}
-
-# 在原来的键上添加新的值
-my_dict['name'] = 'Jerry'
-
-print(my_dict)
\ No newline at end of file
diff --git a/python/wsgi.py b/python/wsgi.py
new file mode 100755
index 0000000..e6d548e
--- /dev/null
+++ b/python/wsgi.py
@@ -0,0 +1,5 @@
+from app import app
+import os
+
+if __name__ == "__main__":
+ app.run(host='0.0.0.0', port=os.environ.get("FLASK_SERVER_PORT"), debug=True)
\ No newline at end of file