From 8811891c7e5e6ac3c8a7ed41da3bdd0858f6f0e0 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Fri, 8 Aug 2025 00:11:54 -0400 Subject: [PATCH] support 'task run' and 'task build' for quick and easy spin-ups --- Taskfile.yml | 14 ++++ .../docker-compose.dev.yml | 27 +++---- compose/docker-compose.prod.yml | 71 +++++++++++++++++++ dockerfiles/oms-prod.Dockerfile | 6 ++ dockerfiles/tenant.Dockerfile | 3 - dockerfiles/uis-prod.Dockerfile | 9 +++ mocha-dotnet | 2 +- 7 files changed, 116 insertions(+), 16 deletions(-) create mode 100644 Taskfile.yml rename docker-compose.yml => compose/docker-compose.dev.yml (66%) create mode 100644 compose/docker-compose.prod.yml create mode 100644 dockerfiles/oms-prod.Dockerfile delete mode 100644 dockerfiles/tenant.Dockerfile create mode 100644 dockerfiles/uis-prod.Dockerfile diff --git a/Taskfile.yml b/Taskfile.yml new file mode 100644 index 0000000..5caa9f9 --- /dev/null +++ b/Taskfile.yml @@ -0,0 +1,14 @@ +# https://taskfile.dev + +version: '3' + +tasks: + build: + desc: Build Docker images for Mocha + cmds: + - docker compose -f compose/docker-compose.prod.yml build + + run: + desc: Spin up a temporary Mocha instance in Docker for development + cmds: + - docker compose -f compose/docker-compose.dev.yml up diff --git a/docker-compose.yml b/compose/docker-compose.dev.yml similarity index 66% rename from docker-compose.yml rename to compose/docker-compose.dev.yml index ff9682a..f3aa011 100644 --- a/docker-compose.yml +++ b/compose/docker-compose.dev.yml @@ -1,5 +1,7 @@ services: mocha-oms: + build: + context: .. image: mcr.microsoft.com/dotnet/runtime:8.0 command: dotnet /oms/Mocha.Oms.Server.dll environment: @@ -12,13 +14,13 @@ services: networks: - app-tenant volumes: - - ./mocha-dotnet/mocha-dotnet/src/app/Mocha.Oms.Server/bin/Debug/net8.0:/oms - - ./mocha-dotnet/mocha-common/mocha-common/output:/usr/share/mocha/system + - ../mocha-dotnet/mocha-dotnet/src/app/Mocha.Oms.Server/bin/Debug/net8.0:/oms + - ../mocha-dotnet/mocha-common/mocha-common/output:/usr/share/mocha/system mochaui-tenant: build: - context: . - dockerfile: ./dockerfiles/tenant.Dockerfile + context: .. + image: mochapowered/mochaui-tenant:latest environment: VIRTUAL_HOST: localhost # OMS_TYPE: mysql @@ -36,17 +38,17 @@ services: networks: - app-tenant volumes: - - ./mocha-php/mocha-php/src/mocha-php:/var/www/html - - ./mocha-php/phast/lib/phast/server:/usr/local/lib/php/lib/phast - - ./mocha-php/phast/lib/phast/client/scripts:/var/www/html/scripts/phast - - ./mocha-dotnet/mocha-common/mocha-common/data/uploads:/var/mocha/uploads - - ./uwt-web/src/uwt-web/fonts/awesome/webfonts:/var/www/html/webfonts + - ../mocha-php/mocha-php/src/mocha-php:/var/www/html + - ../mocha-php/phast/lib/phast/server:/usr/local/lib/php/lib/phast + - ../mocha-php/phast/lib/phast/client/scripts:/var/www/html/scripts/phast + - ../mocha-dotnet/mocha-common/mocha-common/data/uploads:/var/mocha/uploads + - ../uwt-web/src/uwt-web/fonts/awesome/webfonts:/var/www/html/webfonts static: image: nginx:alpine volumes: - - ./uwt-web/output:/usr/share/nginx/html - - ./uwt-web/src/uwt-web/fonts:/usr/share/nginx/html/fonts + - ../uwt-web/output:/usr/share/nginx/html + - ../uwt-web/src/uwt-web/fonts:/usr/share/nginx/html/fonts networks: - app-tenant - app-manager @@ -75,9 +77,10 @@ services: - "3333:80" volumes: - /var/run/docker.sock:/tmp/docker.sock:ro - - ./vhost-tenant.d:/etc/nginx/vhost.d:ro + - ../vhost-tenant.d:/etc/nginx/vhost.d:ro networks: proxy: app-tenant: app-manager: + diff --git a/compose/docker-compose.prod.yml b/compose/docker-compose.prod.yml new file mode 100644 index 0000000..d7fac63 --- /dev/null +++ b/compose/docker-compose.prod.yml @@ -0,0 +1,71 @@ +services: + mocha-oms: + build: + context: .. + dockerfile: dockerfiles/oms-prod.Dockerfile + image: mochapowered/mocha-oms + networks: + - app-tenant + + mochaui-tenant: + build: + context: .. + dockerfile: dockerfiles/uis-prod.Dockerfile + image: mochapowered/mocha-uis:latest + environment: + VIRTUAL_HOST: localhost + # OMS_TYPE: mysql + # OMS_SERVERNAME: db + # OMS_SERVERPORT: 3306 + # OMS_DATABASENAME: mochadb + # OMS_USERNAME: mochadb + # OMS_PASSWORD: '93X37B]@k(svLmFM' + OMS_TYPE: api + OMS_SERVERNAME: mocha-oms + OMS_SERVERPORT: 4436 + THEMES_PATH: /css/themes/{ThemeName}.css + COMMON_THEMES_PATH: /css/common.css + # # THEMES_PATH: /themes/{ThemeName}/theme.css + networks: + - app-tenant + + + static: + image: nginx:alpine + volumes: + - ./uwt-web/output:/usr/share/nginx/html + - ./uwt-web/src/uwt-web/fonts:/usr/share/nginx/html/fonts + networks: + - app-tenant + - app-manager + + #nginx-proxy-manager: + # depends_on: + # - static + # - mochaui-manager + # - phpmyadmin + # image: jwilder/nginx-proxy + # ports: + # - "8082:80" + # volumes: + # - /var/run/docker.sock:/tmp/docker.sock:ro + # - ./vhost-manager.d:/etc/nginx/vhost.d:ro + + nginx-proxy-tenant: + depends_on: + - static + - mocha-oms + image: jwilder/nginx-proxy + networks: + - app-tenant + - proxy + ports: + - "3333:80" + volumes: + - /var/run/docker.sock:/tmp/docker.sock:ro + - ./vhost-tenant.d:/etc/nginx/vhost.d:ro + +networks: + proxy: + app-tenant: + app-manager: diff --git a/dockerfiles/oms-prod.Dockerfile b/dockerfiles/oms-prod.Dockerfile new file mode 100644 index 0000000..80367ea --- /dev/null +++ b/dockerfiles/oms-prod.Dockerfile @@ -0,0 +1,6 @@ +FROM mcr.microsoft.com/dotnet/runtime:8.0 + +COPY ./mocha-dotnet/mocha-dotnet/src/app/Mocha.Oms.Server/bin/Debug/net8.0 /oms +COPY ./mocha-dotnet/mocha-common/mocha-common/output /usr/share/mocha/system + +ENTRYPOINT dotnet /oms/Mocha.Oms.Server.dll diff --git a/dockerfiles/tenant.Dockerfile b/dockerfiles/tenant.Dockerfile deleted file mode 100644 index d6ff30c..0000000 --- a/dockerfiles/tenant.Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM php:8.2-apache - -RUN a2enmod rewrite diff --git a/dockerfiles/uis-prod.Dockerfile b/dockerfiles/uis-prod.Dockerfile new file mode 100644 index 0000000..21dc90a --- /dev/null +++ b/dockerfiles/uis-prod.Dockerfile @@ -0,0 +1,9 @@ +FROM php:8.2-apache + +RUN a2enmod rewrite + +COPY ./mocha-php/mocha-php/src/mocha-php /var/www/html +COPY ./mocha-php/phast/lib/phast/server /usr/local/lib/php/lib/phast +COPY ./mocha-php/phast/lib/phast/client/scripts /var/www/html/scripts/phast +COPY ./mocha-dotnet/mocha-common/mocha-common/data/uploads /var/mocha/uploads +COPY ./uwt-web/src/uwt-web/fonts/awesome/webfonts /var/www/html/webfonts diff --git a/mocha-dotnet b/mocha-dotnet index f3dbdc8..3023d6e 160000 --- a/mocha-dotnet +++ b/mocha-dotnet @@ -1 +1 @@ -Subproject commit f3dbdc87b32124101c159ba35573bf49182619f5 +Subproject commit 3023d6e513f1268d58e4ff280e27713fdeb4a9c2