|
|
(5 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| MDriven Turnkey and MDriven Server have linux distributions and can be run as linux container applications. Making them more portable, easier to share and run. With docker containers, deploying apps is more faster and less complex. | | {{DISPLAYTITLE:MDriven Docker Local Deployment}} |
|
| |
|
| === Local Deployment ===
| | __NOINDEX__ |
| Install [https://www.docker.com/products/docker-desktop/ Docker Desktop]. Versions are available for Windows and linux.
| |
| | |
| Choose one of the linux distributions to deploy with:
| |
| | |
| * '''Alpine''' - Extremely light weight with a minimalist approach. Ideal for light weight apps, microservices and environments where efficienct resource utilization is critical.
| |
| * '''Ubuntu''' - Has a larger footprint with more preinstalled packages and tools, ideal for an enviroment where a wide range of tools and libraries are needed.
| |
| | |
| Create a docker file for the MDriven Server
| |
| | |
| Contents of ''<u>MDrivenServer.Dockerfile</u>''<syntaxhighlight>
| |
| # syntax=docker/dockerfile:1
| |
| | |
| FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine
| |
| | |
| RUN apk add --upgrade --no-cache \
| |
| curl \
| |
| unzip \
| |
| xmlstarlet
| |
| | |
| WORKDIR /app
| |
| | |
| ARG MS_VERSION
| |
| | |
| RUN curl -O https://mdriven.net/PublicDownloads/MDrivenServerOnCoreVersion.xml \
| |
| && MS_VERSION=$(xmlstarlet sel -t -v "//root/date" MDrivenServerOnCoreVersion.xml) \
| |
| && rm -f MDrivenServerOnCoreVersion.xml \
| |
| && curl -O "https://mdriven.net/PublicDownloads/MDrivenServerCoreLinux_${MS_VERSION}.zip" \
| |
| && unzip "MDrivenServerCoreLinux_${MS_VERSION}.zip" \
| |
| && rm -f "MDrivenServerCoreLinux_${MS_VERSION}.zip"
| |
| | |
| | |
| RUN dotnet nuget add source /mnt/c/capableobjectswush/Xternal/VistaDB --name XternatVistaDB
| |
| | |
| ENTRYPOINT ["dotnet", "AppCompleteGenericCore.dll", "-port=5010", "-nohttps"]
| |
| </syntaxhighlight>
| |
| {| class="wikitable"
| |
| !Command
| |
| !Description
| |
| |-
| |
| |<code>FROM mcr.microsoft.com/dotnet/sdk:</code>
| |
| <code>8.0-alpine</code>
| |
| |Base image for the container MDriven Server app. An Alpine Linux distribution with .NET 8.0 SDK for running .NET applications.
| |
| Check https://github.com/dotnet/dotnet-docker/blob/main/README.sdk.md for more .NET SDK container images.
| |
| |-
| |
| |<code>RUN apk add --upgrade --no-cache \</code>
| |
| | |
| <code> curl \</code>
| |
| | |
| <code> unzip \</code>
| |
| | |
| <code> xmlstarlet</code>
| |
| |Updates the existing linux packages and installs packages: curl for downloading files, unzip for extracting zip file contents and xmlstarlet for parsing xml content.
| |
| |-
| |
| |<code>WORKDIR /app</code>
| |
| |Sets the working dir for the following commands.
| |
| |-
| |
| |<code>ARG MS_VERSION</code>
| |
| |Creates MS_VERSION build-time variable called MS_VERSION.
| |
| |-
| |
| |<code>RUN curl -O <nowiki>https://mdriven.net/PublicDownloads/MDrivenServerOnCoreVersion.xml</nowiki> \</code>
| |
| | |
| <code> && MS_VERSION=$(xmlstarlet sel -t -v "//root/date" MDrivenServerOnCoreVersion.xml) \</code>
| |
| | |
| <code> && rm -f MDrivenServerOnCoreVersion.xml \</code>
| |
| | |
| <code> && curl -O "<nowiki>https://mdriven.net/PublicDownloads/MDrivenServerCoreLinux_${MS_VERSION}.zip</nowiki>" \</code>
| |
| | |
| <code> && unzip "MDrivenServerCoreLinux_${MS_VERSION}.zip" \</code>
| |
| | |
| <code> && rm -f "MDrivenServerCoreLinux_${MS_VERSION}.zip"</code>
| |
| |Get the current MDriven Version, use it to download the current MDriven Server app and unzip it into the current working directory. If you have an existing MDriven Server instance, copy the files to the container.<syntaxhighlight>
| |
| COPY ./mdriven-files .
| |
| </syntaxhighlight>
| |
| |-
| |
| |<code>RUN dotnet nuget add source /mnt/c/capableobjectswush/Xternal/VistaDB --name XternatVistaDB</code>
| |
| |Add the VistaDB package source.
| |
| |-
| |
| |<code>ENTRYPOINT ["dotnet", "AppCompleteGenericCore.dll", "-port=5010", "-nohttps"]</code>
| |
| |Run the application on port 5010 and over http.
| |
| |}
| |
| Create a docker file for the Turnkey Server
| |
| | |
| contents of ''<u>MDrivenTurnkey.Dockerfile</u>''<syntaxhighlight>
| |
| # syntax=docker/dockerfile:1
| |
| | |
| FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine
| |
| | |
| RUN apk add --upgrade --no-cache \
| |
| curl \
| |
| unzip \
| |
| xmlstarlet \
| |
| musl-locales
| |
| | |
| ENV LANG=en_US.UTF-8
| |
| ENV LANGUAGE=en_US:en
| |
| ENV LC_ALL=en_US.UTF-8
| |
| | |
| RUN locale -a
| |
| | |
| WORKDIR /app
| |
| | |
| ARG TK_VERSION
| |
| | |
| RUN curl -O https://mdriven.net/PublicDownloads/MDrivenTurnkeyOnCoreVersion.xml \
| |
| && TK_VERSION=$(xmlstarlet sel -t -v "//root/date" MDrivenTurnkeyOnCoreVersion.xml) \
| |
| && rm -f MDrivenTurnkeyOnCoreVersion.xml \
| |
| && curl -O "https://mdriven.net/PublicDownloads/MDrivenTurnkeyCoreLinuxMUSL_${TK_VERSION}.zip" \
| |
| && unzip "MDrivenTurnkeyCoreLinuxMUSL_${TK_VERSION}.zip" \
| |
| && rm -f "MDrivenTurnkeyCoreLinuxMUSL_${TK_VERSION}.zip"
| |
| | |
| | |
| COPY ./turnkey-settings ./App_Data
| |
| | |
| | |
| ENTRYPOINT ["dotnet", "StreaminAppCoreWebApp.dll", "-port=5020", "-nohttps"]
| |
| </syntaxhighlight>
| |
| '''NOTE:''' For Turnkey Server, install locale packages and set language to prevent locale errors. The Turnkey uses the OS locale settings to determine which locale file is used by the Turnkey.
| |
| copy Turnkey settings to Turnkey ''APP_Data'' Folder. The turnkey-settings folder contains:
| |
| | |
| HardServerUrl Settings: To specify the address to be used by the Turnkey Server.
| |
| | |
| MDrivenServerOverride Settings: TO specify credentials for connecting to the MDriven Server
| |
| | |
| contents of <u>turnkey-settings/HardServerUrl.xml</u><syntaxhighlight>
| |
| <?xml version="1.0" encoding="utf-8"?>
| |
| <root HardServerUrl="http://localhost:5020">
| |
| </root>
| |
| </syntaxhighlight>contents of <u>turnkey-settings/MDrivenServerOverride.xml</u><syntaxhighlight>
| |
| <?xml version="1.0" encoding="utf-8"?>
| |
| <root>
| |
| <MDrivenServerOverride MDrivenServerPWD="123456" MDrivenServerUSER="a">http://mdriven_server:5010</MDrivenServerOverride>
| |
| </root>
| |
| </syntaxhighlight>contents of ''<u>compose.yaml</u>''<syntaxhighlight>
| |
| | |
| services:
| |
| mdriven_server:
| |
| build:
| |
| dockerfile: MDrivenServer.Dockerfile
| |
| networks:
| |
| - app_net
| |
| volumes:
| |
| - mdriven_server_data:/app
| |
| ports:
| |
| - 5010:5010
| |
| healthcheck:
| |
| test: ["CMD", "curl", "-f", "http://localhost:5010"]
| |
| interval: 24h
| |
| timeout: 30s
| |
| retries: 5
| |
| start_period: 30s
| |
| | |
| mdriven_turnkey:
| |
| build:
| |
| dockerfile: MDrivenTurnkey.Dockerfile
| |
| networks:
| |
| - app_net
| |
| volumes:
| |
| - mdriven_turnkey_data:/app
| |
| ports:
| |
| - 5020:5020
| |
| depends_on:
| |
| - mdriven_server
| |
| | |
| volumes:
| |
| mdriven_turnkey_data:
| |
| mdriven_server_data:
| |
| networks:
| |
| app_net:
| |
| | |
| | |
| </syntaxhighlight>
| |
| | |
| ==== See also: ====
| |
| | |
| * [[Documentation:WSL Windows subsystem for Linux|WSL Windows subsystem for Linux]]
| |