Do instalacji PlusWorkflow klient powinien zapewnić:
PostgreSQL lub SQL server
Storage account
Container registry
Klient musi posiadać obraz systemu PlusWorkflow w swoim rejestrze kontenerów(Container registry), aby taki obraz przesłać do klienta należy skopiować go ze swojego Dockera poleceniami
#wyświetli nasze obrazy, znajdziemy tam imageID docker images #zapis obrazu z imageID do wybranej ścieżki docker save imageID > /home/archiveName.tar #wczytanie u Klienta obrazu docker load < /home/archiveName.tar #logowanie do rejestru kontenerów klienta docker login pwflregistry.azurecr.io #tagowanie wczytanego obrazu docker tag plusworkflow pwflregistry.azurecr.io/suncode/plusworkflow_new #umieszczanie obrazu w rejestrze kontenerów klienta docker push pwflregistry.azurecr.io/suncode/plusworkflow_new
Gdy mamy już to wszystko stworzone wystarczy uzupełnić plik .json o dane:
"pwflw9" - należy zmodyfikować wszystkie wystąpienia w pliku na nazwę Instancji wedle wymagań klienta
"image" - należy podać ścieżkę odpowiadającą rejestrowi kontenerów i wcześniej wrzuconym obrazem z dockera
"imageRegistryCredentials" - wartościami server czyli link do rejestr kontenerów, username i password znajdziemy we właściwościach rejestru
"azureFile" - należy wprowadzić nazwę zasobów, nazwe konta Storage oraz jego klucz który znajdziemy we właściwościach Storage
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "containerGroups_pwflw9_name": { "defaultValue": "pwflw9", "type": "String" } }, "variables": {}, "resources": [ { "type": "Microsoft.ContainerInstance/containerGroups", "apiVersion": "2019-12-01", "name": "[parameters('containerGroups_pwflw9_name')]", "location": "westeurope", "properties": { "sku": "Standard", "containers": [ { "name": "[parameters('containerGroups_pwflw9_name')]", "properties": { "image": "pwflregistry.azurecr.io/suncode/plusworkflow_new", "ports": [ { "protocol": "TCP", "port": 8080 } ], "environmentVariables": [], "resources": { "requests": { "memoryInGB": 1.5, "cpu": 1 } }, "volumeMounts": [ { "name": "azurefile", "mountPath": "/usr/local/tomcat/webapps/PlusWorkflow Home/" } ] } } ], "initContainers": [], "imageRegistryCredentials": [ { "server": "xxxxregistry.azurecr.io", "username": "xxxxregistry", "password": "password" } ], "restartPolicy": "Always", "ipAddress": { "ports": [ { "protocol": "TCP", "port": 8080 } ], "ip": "20.73.232.39", "type": "Public", "dnsNameLabel": "[parameters('containerGroups_pwflw9_name')]" }, "osType": "Linux", "volumes": [ { "name": "azurefile", "azureFile": { "shareName": "suncodedockerstorage", "storageAccountName": "storagexxx", "storageAccountKey": "storageAccountKey" } } ] } } ] }
Aby zacząć instalację należy zalogować się w Azure CLI, znajdować się w odpowiedniej lokalizacji przy pliku .json bądź go wskazać komendą
az deployment group create --resource-group pwfl_docker --template-file deploy-aci.json
Po chwili powinno zacząć się budowanie systemu, a po paru minutach system będzie dostępny w Azure.
Na screenie niżej zbudowane 3 systemy oraz ich komponenty, instalacja u klienta powinna wyglądać podobnie, gdy otworzymy nowo powstałą instancje kontenera możemy sprawdzić czy system PlusWorkflow uruchomił się poprawnie, możemy sprawdzić to w logach lub wchodząc na adres publiczny instancji, jeśli wszystko jest poprawnie należy podłączyć bazę danych oraz dodać adres IP do reguł bazy, aby nie był blokowany.