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.

