Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Python-de] yaml config mit python editieren

1 view
Skip to first unread message

Stefan Fuhrmann

unread,
Oct 10, 2020, 3:39:59 AM10/10/20
to
Hallo zusammen,

ich habe eine docker-compose.yml und möchte diese editieren, was mir
nicht gelingt.

#!/usr/bin/python3
 2
 3 import subprocess
 4 import shutil
 5 import os
 6 import docker
 7 #client = docker.DockerClient(base_url="unix://var/run/docker.sock",
version='auto')
 8 client = docker.from_env()
 9 import sys
10 import yaml
11print(sys.version)
12
1
21
22
23 with open('docker-compose.yml', "r") as f:

24     # The FullLoader parameter handles the conversion from YAML
25     # scalar values to Python the dictionary format26     #
docker_compose = yaml.load(file, Loader=yaml.FullLoader)

27     docker_compose  = yaml.full_load(f)

28 #    docker_compose  = yaml.load(f, Loader=yaml.FullLoader)
29 #    docker_compose['MYSQL_ROOT_PASSWORD'] = "test"
30
#docker_compose["services"]["db"]["environment"]['MYSQL_ROOT_PASSWORD']
= docker_compose.update("{{{pass}}}", "passing")
31
32     #docker_compose.update("{{{pass}}}", "Passing")
33
34    # txt = "pass"
35    # x = txt.replace("pass", "apples")
36     docker_compose["services"]["db"]["environment"] =
docker_compose.update("pass", "apples")
37
38 #    print(docker_compose)
39    # docker_compose = docker_compose.replace("{{{pass}}}",
"passingpass")
40
41
42 with open('docker-compose.yml', "w") as f:
43     yaml.dump(docker_compose, f)

in der docker-compose habe ich bei MYSQL_ROOT_PASSWORD=pass eingetragen,
weil ich dachte, wenn ich da was einfaches stehen habe, kann ich es
ersetzen.

Das funktioniert so leider nicht. Jetzt wird bis "environment" in der
yaml alles weggeschnitten.


Wie kann ich eine docker-compose.yml mit  python editieren?

Kann jemand helfen?


Danke!

Gruß

Stefan


Stefan Fuhrmann

unread,
Oct 10, 2020, 4:12:58 AM10/10/20
to
manchmal muss man erst an Liste schreiben... ;)

mit

  docker_compose["services"]["db"]["environment"] =
dict(MYSQL_ROOT_PASSWORD= "passing")

funktioniert es!

Danke!

Gruß

Stefan



Am 10.10.20 um 09:39 schrieb Stefan Fuhrmann:
> _______________________________________________
> python-de maillist  -  pyth...@python.org
> https://mail.python.org/mailman/listinfo/python-de

robert rottermann

unread,
Oct 10, 2020, 7:47:42 AM10/10/20
to

StephanOn 10.10.20 09:39, Stefan Fuhrmann wrote:
> Hallo zusammen,
>
> ich habe eine docker-compose.yml und möchte diese editieren, was mir nicht
> gelingt.

beliegend zwei Dateien:

config.yaml:
    das is ein Template, das zu Generieren einer yaml-Datei die aus einem
Template-Ordner gelesen wird.

construct_default.py:
    ersetzt die "Platzhalter"  und schreibt die yaml Datei.

Ich mache da alles sehr "händisch". Geht wohl eleganter, funktioniert aber bestens.

Gruss

Robert
0 new messages