update mih ui with stable flutter and optimised docker file caching
This commit is contained in:
@@ -4,21 +4,21 @@ networks:
|
|||||||
driver: bridge
|
driver: bridge
|
||||||
#============== MIH Containers ====================================================================
|
#============== MIH Containers ====================================================================
|
||||||
services:
|
services:
|
||||||
#============== Nginx Proxy Manager ====================================================================
|
#============== Nginx Proxy Manager ====================================================================
|
||||||
mih-nginx:
|
mih-nginx:
|
||||||
container_name: mih-nginx
|
container_name: mih-nginx
|
||||||
image: 'jc21/nginx-proxy-manager:latest'
|
image: "jc21/nginx-proxy-manager:latest"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
- '80:80' # Public HTTP
|
- "80:80" # Public HTTP
|
||||||
- '443:443' # Public HTTPS
|
- "443:443" # Public HTTPS
|
||||||
- '127.0.0.1:81:81' # Admin Web Port
|
- "127.0.0.1:81:81" # Admin Web Port
|
||||||
volumes:
|
volumes:
|
||||||
- ./mih_nginx/data:/data
|
- ./mih_nginx/data:/data
|
||||||
- ./mih_nginx/letsencrypt:/etc/letsencrypt
|
- ./mih_nginx/letsencrypt:/etc/letsencrypt
|
||||||
networks:
|
networks:
|
||||||
- mih-network
|
- mih-network
|
||||||
#============== GITEA ====================================================================
|
#============== GITEA ====================================================================
|
||||||
mih-gitea:
|
mih-gitea:
|
||||||
image: gitea/gitea:latest
|
image: gitea/gitea:latest
|
||||||
container_name: mih-gitea
|
container_name: mih-gitea
|
||||||
@@ -68,11 +68,11 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- mih-db
|
- mih-db
|
||||||
ports:
|
ports:
|
||||||
- '127.0.0.1:3567:3567'
|
- "127.0.0.1:3567:3567"
|
||||||
environment:
|
environment:
|
||||||
REFRESH_TOKEN_VALIDITY: '604800'
|
REFRESH_TOKEN_VALIDITY: "604800"
|
||||||
ACCESS_TOKEN_VALIDITY: '86400'
|
ACCESS_TOKEN_VALIDITY: "86400"
|
||||||
PASSWORD_RESET_TOKEN_LIFETIME: '7200000'
|
PASSWORD_RESET_TOKEN_LIFETIME: "7200000"
|
||||||
MYSQL_USER: ${SQL_USER}
|
MYSQL_USER: ${SQL_USER}
|
||||||
MYSQL_PASSWORD: ${SQL_USER_PW}
|
MYSQL_PASSWORD: ${SQL_USER_PW}
|
||||||
MYSQL_HOST: mih-db
|
MYSQL_HOST: mih-db
|
||||||
@@ -94,7 +94,7 @@ services:
|
|||||||
image: wordpress
|
image: wordpress
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- '127.0.0.1:8081:80'
|
- "127.0.0.1:8081:80"
|
||||||
environment:
|
environment:
|
||||||
WORDPRESS_DB_HOST: mih-wp-db
|
WORDPRESS_DB_HOST: mih-wp-db
|
||||||
WORDPRESS_DB_USER: ${WP_SQL_USER}
|
WORDPRESS_DB_USER: ${WP_SQL_USER}
|
||||||
@@ -112,7 +112,7 @@ services:
|
|||||||
MARIADB_DATABASE: ${WP_SQL_DB}
|
MARIADB_DATABASE: ${WP_SQL_DB}
|
||||||
MARIADB_USER: ${WP_SQL_USER}
|
MARIADB_USER: ${WP_SQL_USER}
|
||||||
MARIADB_PASSWORD: ${WP_SQL_USER_PW}
|
MARIADB_PASSWORD: ${WP_SQL_USER_PW}
|
||||||
MARIADB_RANDOM_ROOT_PASSWORD: '1'
|
MARIADB_RANDOM_ROOT_PASSWORD: "1"
|
||||||
volumes:
|
volumes:
|
||||||
- ./mih_wp/database:/var/lib/mysql
|
- ./mih_wp/database:/var/lib/mysql
|
||||||
networks:
|
networks:
|
||||||
@@ -142,7 +142,7 @@ services:
|
|||||||
- mih-network
|
- mih-network
|
||||||
depends_on:
|
depends_on:
|
||||||
- mih-db
|
- mih-db
|
||||||
#============== My SQL DB ====================================================================
|
#============== My SQL DB ====================================================================
|
||||||
mih-db:
|
mih-db:
|
||||||
platform: linux/amd64
|
platform: linux/amd64
|
||||||
image: mysql:5.7
|
image: mysql:5.7
|
||||||
@@ -156,10 +156,10 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- mih-network
|
- mih-network
|
||||||
ports:
|
ports:
|
||||||
- '127.0.0.1:3306:3306'
|
- "127.0.0.1:3306:3306"
|
||||||
volumes:
|
volumes:
|
||||||
- ./mih_db:/var/lib/mysql
|
- ./mih_db:/var/lib/mysql
|
||||||
#============== PHP My Admin ====================================================================
|
#============== PHP My Admin ====================================================================
|
||||||
# phpmyadmin:
|
# phpmyadmin:
|
||||||
# platform: linux/amd64
|
# platform: linux/amd64
|
||||||
# image: phpmyadmin/phpmyadmin
|
# image: phpmyadmin/phpmyadmin
|
||||||
@@ -175,41 +175,41 @@ services:
|
|||||||
# - 8081:80
|
# - 8081:80
|
||||||
# depends_on:
|
# depends_on:
|
||||||
# - mih-db
|
# - mih-db
|
||||||
#============== Minio File Storage ====================================================================
|
#============== Minio File Storage ====================================================================
|
||||||
mih-minio:
|
mih-minio:
|
||||||
platform: linux/amd64
|
platform: linux/amd64
|
||||||
container_name: mih-minio
|
container_name: mih-minio
|
||||||
hostname: mih-minio
|
hostname: mih-minio
|
||||||
image: minio/minio
|
image: minio/minio
|
||||||
ports:
|
ports:
|
||||||
- '127.0.0.1:9000:9000'
|
- "127.0.0.1:9000:9000"
|
||||||
- '127.0.0.1:9001:9001'
|
- "127.0.0.1:9001:9001"
|
||||||
volumes:
|
volumes:
|
||||||
- './mih_minio:/data'
|
- "./mih_minio:/data"
|
||||||
environment:
|
environment:
|
||||||
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
|
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
|
||||||
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PW}
|
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PW}
|
||||||
networks:
|
networks:
|
||||||
- mih-network
|
- mih-network
|
||||||
command: ["server", "/data", "--console-address", ":9001"]
|
command: ["server", "/data", "--console-address", ":9001"]
|
||||||
#============== MIH-Monitor Portainer ====================================================================
|
#============== MIH-Monitor Portainer ====================================================================
|
||||||
mih-monitor:
|
mih-monitor:
|
||||||
container_name: mih-monitor
|
container_name: mih-monitor
|
||||||
image: portainer/portainer-ce:2.20.3
|
image: portainer/portainer-ce:2.20.3
|
||||||
ports:
|
ports:
|
||||||
- '127.0.0.1:9444:9443'
|
- "127.0.0.1:9444:9443"
|
||||||
volumes:
|
volumes:
|
||||||
- ./mih_monitor/data:/data
|
- ./mih_monitor/data:/data
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- mih-network
|
- mih-network
|
||||||
#============== MIH-AI Ollama ====================================================================
|
#============== MIH-AI Ollama ====================================================================
|
||||||
mih-ai:
|
mih-ai:
|
||||||
container_name: mih-ai
|
container_name: mih-ai
|
||||||
image: ollama/ollama:latest
|
image: ollama/ollama:0.21.2
|
||||||
ports:
|
ports:
|
||||||
- '127.0.0.1:11434:11434'
|
- "127.0.0.1:11434:11434"
|
||||||
volumes:
|
volumes:
|
||||||
- ./mih_ai/ollama/ollama:/root/.ollama
|
- ./mih_ai/ollama/ollama:/root/.ollama
|
||||||
pull_policy: always
|
pull_policy: always
|
||||||
@@ -222,15 +222,15 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- mih-network
|
- mih-network
|
||||||
# === Added section for NVIDIA GPU acceleration ===
|
# === Added section for NVIDIA GPU acceleration ===
|
||||||
# runtime: nvidia
|
# runtime: nvidia
|
||||||
# deploy:
|
# deploy:
|
||||||
# resources:
|
# resources:
|
||||||
# reservations:
|
# reservations:
|
||||||
# devices:
|
# devices:
|
||||||
# - driver: nvidia
|
# - driver: nvidia
|
||||||
# count: all # or specify a number of GPUs
|
# count: all # or specify a number of GPUs
|
||||||
# capabilities: [ gpu ]
|
# capabilities: [ gpu ]
|
||||||
#============== Firebaase ====================================================================
|
#============== Firebaase ====================================================================
|
||||||
# firebase:
|
# firebase:
|
||||||
# container_name: MIH-firebase-emulator
|
# container_name: MIH-firebase-emulator
|
||||||
# build:
|
# build:
|
||||||
|
|||||||
@@ -3,17 +3,19 @@ FROM debian:latest AS build-env
|
|||||||
|
|
||||||
# Install necessary dependencies for Flutter
|
# Install necessary dependencies for Flutter
|
||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install -y \
|
||||||
curl git wget unzip libglu1-mesa fonts-droid-fallback python3 \
|
curl git wget unzip libglu1-mesa fonts-droid-fallback python3 \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Clone Flutter SDK
|
# Clone Flutter SDK
|
||||||
RUN git clone -b flutter-3.32-candidate.0 https://github.com/flutter/flutter.git /usr/local/flutter
|
RUN git clone -b stable https://github.com/flutter/flutter.git /usr/local/flutter
|
||||||
ENV PATH="/usr/local/flutter/bin:/usr/local/flutter/bin/cache/dart-sdk/bin:${PATH}"
|
ENV PATH="/usr/local/flutter/bin:/usr/local/flutter/bin/cache/dart-sdk/bin:${PATH}"
|
||||||
|
|
||||||
# Build the Flutter web app
|
# Build the Flutter web app
|
||||||
|
RUN flutter config --enable-web && flutter precache --web
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
COPY pubspec.yaml pubspec.lock ./
|
||||||
|
RUN flutter pub get
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN flutter config --enable-web
|
|
||||||
RUN flutter build web --release -t ./lib/main_prod.dart
|
RUN flutter build web --release -t ./lib/main_prod.dart
|
||||||
|
|
||||||
# --- STAGE 2: The Final Production Image ---
|
# --- STAGE 2: The Final Production Image ---
|
||||||
@@ -24,13 +26,13 @@ COPY --from=build-env /app/build/web /usr/share/nginx/html
|
|||||||
|
|
||||||
# Create the Nginx config inside the Dockerfile to handle SPA routing
|
# Create the Nginx config inside the Dockerfile to handle SPA routing
|
||||||
RUN echo 'server { \
|
RUN echo 'server { \
|
||||||
listen 83; \
|
listen 83; \
|
||||||
location / { \
|
location / { \
|
||||||
root /usr/share/nginx/html; \
|
root /usr/share/nginx/html; \
|
||||||
index index.html; \
|
index index.html; \
|
||||||
try_files $uri $uri/ /index.html; \
|
try_files $uri $uri/ /index.html; \
|
||||||
} \
|
} \
|
||||||
}' > /etc/nginx/conf.d/default.conf
|
}' > /etc/nginx/conf.d/default.conf
|
||||||
|
|
||||||
EXPOSE 83
|
EXPOSE 83
|
||||||
CMD ["nginx", "-g", "daemon off;"]
|
CMD ["nginx", "-g", "daemon off;"]
|
||||||
|
|||||||
Reference in New Issue
Block a user