Customizing-System im Container aufsetzen
Source kopieren und lokal versionieren
Es wird für jedes Image ein temporärer Container erstellt (Version auf den eigenen Stand anpassen), die entsprechenden Quellverzeichnisse extrahiert und der Container danach wieder gelöscht
Es wird empfohlen, die Verzeichnisse mit einem geeigneten Tool wie Git zu versionieren.
Customizing Image
container_id=$(docker create registry.planta.services/planta/customizing:DB25)
mkdir Customizing
docker cp $container_id:psc/src/Python/ ./Customizing/Python/
docker cp $container_id:psc/src/jython/ ./Customizing/jython/
docker cp $container_id:psc/src/config/ ./Customizing/config/
docker cp $container_id:psc/src/DefaultPicture/ ./DefaultPicture/
docker rm $container_id
Manager Image
container_id=$(docker create registry.planta.services/planta/manager:S38)
mkdir manager
docker cp $container_id:/planta/jython/ ./manager/jython/
docker rm $container_id
Worker Image
container_id=$(docker create registry.planta.services/planta/worker:S38)
mkdir worker
docker cp $container_id:/planta/py/ ./worker/Python/
docker rm $container_id
Entwicklungssystem aufsetzen
Zuerst muss ein normales docker-compose-Template mit customizing Image gestartet werden, damit das System sich mit den Standarddaten installiert
Danach muss die docker-compose angepasst werden und alle Referenzen auf das customizing Image entfernt werden.
Dann können die Source-Verzeichnisse aus dem 1. Schritt lokal gemounted werden.
Es wird angenommen, dass die Verzeichnisse im gleichen Ordner wie die docker-compose Datei liegen.
manager
volumes:
- ./Customizing/config:/mnt/transfer/config:rw
- ./Customizing/Python:/mnt/transfer/Python:rw
- ./Customizing/jython:/mnt/transfer/jython:rw
- ./Customizing/DefaultPicture:/mnt/transfer/DefaultPicture:rw
- ./manager/jython/server:/planta/jython/server:rw
- ./manager/jython/__init__.py:/planta/jython/__init__.py:rw
worker
volumes:
- ./Customizing/config:/mnt/transfer/config:rw
- ./Customizing/Python:/mnt/transfer/Python:rw
- ./Customizing/jython:/mnt/transfer/jython:rw
- ./Customizing/DefaultPicture:/mnt/transfer/DefaultPicture:rw
- ./worker/Python/py/api/ppms/server/csrpc:/planta/py/api/ppms/server/csrpc:rw
- ./worker/Python/py/api/ppms/server/ppms:/planta/py/api/ppms/server/ppms:rw
- ./worker/Python/py/api/ppms/server/tests:/planta/py/api/ppms/server/tests:rw
- ./worker/Python/py/api/ppms/server/__init__.py:/planta/py/api/ppms/server/__init__.py:rw
- ./worker/Python/py/api/ppms/server/planta.py:/planta/py/api/ppms/server/planta.py:rw
- ./worker/Python/py/folder_overlay_sync.py:/planta/py/folder_overlay_sync.py:rw
Eigenes Customizing Image bauen
Angepasste Customizing Python-Dateien können in einem individuellem Image hinterlegt werden. Dafür erstellt man ein neues Image auf Basis des offiziellen Customizing Images.
Kann für Deployments in Test- und/oder Produktive Umgebungen verwendet werden
Erlaubt eigene Versionierung der Artefakte und Integration in Deployment Pipelines
Dockerfile Beispiel:
FROM registry.planta.services/planta/customizing:DB25
COPY /path/to/your/customizing /path/to/equivalent/path/in/container
## example, copying new individual test.py to customer python file location
# COPY test.py src/Python/py/customer/
## example, copying edited existing ppms.py to existing location
# COPY ppms.py src/Python/py/api/ppms/customizing/venus/ppms/
Nachdem die obenstehende Vorlage angepasst wurde, kann das neue Image mit Docker gebaut und deployed werden.
Individuelle Python Dateien müssen in den Ordner src/Python/py/customer/ abgelegt werden.