Skip to content

Pycharm & Docker

Verschoben Linux
  • Mal die letzten Tage viel mit Docker rumgespielt. Da gibt es in Pycharm auch eine tolle Integration für.

    Strg & Alt & S

    dann kommt man in die Settings von Pycharm, oder über das Menü File -> Settings. Als erstes das Docker Plugin installieren.

    35fcc4b0-93e6-4c95-8050-02135084866c-grafik.png

    Grundvoraussetzung ist natürlich, das Docker auf Eurer Kiste installiert ist.

       ~  docker version                                                                                               ✔ 
    Client:
     Version:           23.0.1
     API version:       1.42
     Go version:        go1.20
     Git commit:        a5ee5b1dfc
     Built:             Sat Feb 11 13:58:04 2023
     OS/Arch:           linux/amd64
     Context:           default
    
    Server:
     Engine:
      Version:          23.0.1
      API version:      1.42 (minimum version 1.12)
      Go version:       go1.20
      Git commit:       bc3805a0a0
      Built:            Sat Feb 11 13:58:04 2023
      OS/Arch:          linux/amd64
      Experimental:     false
     containerd:
      Version:          v1.6.16
      GitCommit:        31aa4358a36870b21a992d3ad2bef29e1d693bec.m
     runc:
      Version:          1.1.4
      GitCommit:        
     docker-init:
      Version:          0.19.0
      GitCommit:        de40ad0
    

    Danach die Settings vom Docker Plugin. Findet man unter Build, Execution, Deployment

    7e4532c5-fb73-4964-9f98-5b37f20760d3-grafik.png

    Wichtig ist der Text Connection Successful

    55649a61-7556-4b0c-85b2-3efaf12633a9-grafik.png

    Nun kann Pycharm mit dem Docker Images bauen und starten. Dazu legt man ein neues File mit dem Namen dockerfile an. Hier mal eines aus meinem aktuellen Projekt.

    #WORKDIR /home/frankm/PycharmProjects/scraping/
    FROM python:3.10
    # Or any preferred Python version.
    WORKDIR /root
    ADD main.py .
    ADD stocks_list.json .
    ADD buy_stocks_list.json .
    RUN apt update && apt upgrade -y
    RUN apt install -y locales
    RUN sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen && \
        dpkg-reconfigure --frontend=noninteractive locales && \
        update-locale LANG=de_DE.UTF-8
    RUN pip install --upgrade pip
    RUN pip install requests beautifulsoup4 pywebio pywebio_battery yfinance pandas pyecharts
    CMD python main.py
    # Or enter the name of your unique directory and parameter set.
    

    Das ist, für Einsteiger erklärt, der Bauplan des Images welches man als Docker Container laufen lassen möchte.

    Man benutzt das Image python:3.10 und wendet darauf eine Reihe von Befehlen an und wenn alles funktioniert hat, startet er am Ende den Docker Container 🙂

    Hier ein gekürzter Auszug aus dem Build Log.

    Step 9/11 : RUN pip install --upgrade pip
     ---> Using cache
     ---> 411c6c0e2b46
    Step 10/11 : RUN pip install requests beautifulsoup4 pywebio pywebio_battery yfinance pandas pyecharts
     ---> Using cache
     ---> 1fc55daee1ed
    Step 11/11 : CMD python main.py
     ---> Using cache
     ---> 522420930488
    
    Successfully built 522420930488
    Successfully tagged latest:latest
    Existing container found: 8b1ac1356aafb6574ea7e81f951e6fdd9c0ba05a9f4031d84492eb74309f92e1, removing…
    Creating container…
    Container Id: 9edb9e30fab209f1c9f704507f20b284d2d15b6eff38b65a8f24b5e3b347e4c1
    Container name: 'python-portfolio'
    Starting container 'python-portfolio'
    'python-portfolio Dockerfile: dockerfile' has been deployed successfully.
    

    Hier kann man sehen, das der Docker Container erfolgreich gestartet wurde.

    Oben rechts in Pycharm findet man das hier

    092cb953-aabf-4e0a-bad3-ac71ab1d4ddc-grafik.png

    Dort kann man auch Umschalter, zwischen Python & Docker. Sehr sinnvoll, wenn man wie ich nicht sattelfest in Python ist und mal richtig rumprobiert. Macht ja dann nicht wirklich Sinn, jedes mal den Docker Container zu deployen.

    Viel Spaß beim Dockern 😉

  • FrankMF FrankM verschob dieses Thema von Privat am
  • Update 1.32.7 - Security Fixes!

    Vaultwarden
    1
    0 Stimmen
    1 Beiträge
    102 Aufrufe
    Niemand hat geantwortet
  • Python - Interessante Packages

    Python3
    1
    0 Stimmen
    1 Beiträge
    117 Aufrufe
    Niemand hat geantwortet
  • Update 1.32.4 - Security Fixes!

    Vaultwarden
    1
    0 Stimmen
    1 Beiträge
    103 Aufrufe
    Niemand hat geantwortet
  • MongoDB - Erste Erfahrungen

    Linux
    2
    2
    0 Stimmen
    2 Beiträge
    175 Aufrufe
    FrankMF
    So frisch von der MongoDB Front und wieder viel gelernt, weil beim Üben macht man Fehler Oben war ja mongodump & mongorestore von der KI empfohlen. Hier das wie ich es gemacht habe. mongodump frank@redis-stack:~$ mongodump -u frank -p '<password>' --host 192.168.3.9 --authenticationDatabase admin -d portfolio -o mongodump/ 2024-04-06T09:29:25.174+0200 writing portfolio.stockList to mongodump/portfolio/stockList.bson 2024-04-06T09:29:25.175+0200 writing portfolio.users to mongodump/portfolio/users.bson 2024-04-06T09:29:25.175+0200 done dumping portfolio.stockList (8 documents) 2024-04-06T09:29:25.176+0200 writing portfolio.total_sum to mongodump/portfolio/total_sum.bson 2024-04-06T09:29:25.177+0200 done dumping portfolio.total_sum (1 document) 2024-04-06T09:29:25.177+0200 writing portfolio.old_total_sum to mongodump/portfolio/old_total_sum.bson 2024-04-06T09:29:25.177+0200 writing portfolio.stocks to mongodump/portfolio/stocks.bson 2024-04-06T09:29:25.177+0200 done dumping portfolio.users (4 documents) 2024-04-06T09:29:25.178+0200 writing portfolio.settings to mongodump/portfolio/settings.bson 2024-04-06T09:29:25.178+0200 done dumping portfolio.settings (1 document) 2024-04-06T09:29:25.179+0200 done dumping portfolio.old_total_sum (1 document) 2024-04-06T09:29:25.179+0200 done dumping portfolio.stocks (34 documents) mongorestore mongorestore -u frank -p '<password>' --host 192.168.3.9 --authenticationDatabase admin -d portfolio mongodump/meineDatenbank/ Hier wird die Datensicherung mongodump/meineDatenbank/ in die neue Datenbank portfolio transferiert. Grund für das Ganze? Mich hatte der Datenbank Name meineDatenbank gestört. Benutzerrechte Jetzt der Teil wo man schnell was falsch machen kann Ich hatte also die neue Datenbank, konnte sie aber nicht lesen. Fehlten halt die Rechte. Ich hatte dann so was hier gemacht. db.updateUser("frank", { roles: [ { role: "readWrite", db: "meineDatenbank" }, { role: "readWrite", db: "portfolio" }]}) Ging auch prima, kam ein ok zurück. Nun das Problem, ich hatte beim Einrichten, den User frank als admin benutzt. Durch den oben abgesetzten Befehl (frank ist ja admin), wurden die neuen Rechte gesetzt und die Rechte als Admin entzogen!! Das war jetzt nicht wirklich das was ich gebrauchen konnte. LOL Ich hatte jetzt keine Kontrolle mehr über die DB. Das war aber nicht so wirklich kompliziert, das wieder zu ändern. Die Authentication temporär abstellen. Also /etc/mongod.conf editieren und #security: security.authorization: enabled eben mal auskommentieren. Den Daemon neustarten und anmelden an der DB. mongosh --host 192.168.3.9 Danach neuen User anlegen db.createUser({ user: "<name>", pwd: "<password>", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] }) mongod.conf wieder ändern und neustarten. Danach hat man wieder eine DB mit Authentifizierung und einen neuen Admin. Ich bin diesmal, man lernt ja, anders vorgegangen. Es gibt nun einen Admin für die DB und einen User zum Benutzen der Datenbanken! So wie man es auch auf einem produktiven System auch machen würde. Wenn ich jetzt mal was an den Benutzerrechten des Users ändere, kann mir das mit dem Admin nicht mehr passieren. Hoffe ich
  • Open Source Software - Nur mit Luft & Liebe läuft es auch nicht rund

    Linux
    1
    0 Stimmen
    1 Beiträge
    145 Aufrufe
    Niemand hat geantwortet
  • Redis - Zweite Instanz

    Redis
    1
    0 Stimmen
    1 Beiträge
    261 Aufrufe
    Niemand hat geantwortet
  • Images 0.11.x

    Images
    5
    0 Stimmen
    5 Beiträge
    403 Aufrufe
    FrankMF
    0.11.2: gitlab-ci-linux-build-187 released 0.11.2: Update OMV install (to also be able to run OMV6)
  • Wireguard

    Verschoben Wireguard
    4
    0 Stimmen
    4 Beiträge
    903 Aufrufe
    FrankMF
    Etwas schnellerer Weg den Tunnel aufzubauen, Voraussetzung wireguard modul installiert Keys erzeugt Danach dann einfach ip link add wg0 type wireguard wg setconf wg0 /etc/wireguard/wg0.conf Datei /etc/wireguard/wg0.conf [Interface] PrivateKey = <Private Key> ListenPort = 60563 [Peer] PublicKey = <Public Key Ziel> Endpoint = <IPv4 Adresse Zielrechner>:58380 AllowedIPs = 10.10.0.1/32 Die Rechte der Dateien von wireguard müssen eingeschränkt werden. sudo chmod 0600 /etc/wireguard/wg0.conf Das ganze per rc.local beim Booten laden. Datei /root/wireguard_start.sh ############################################################################################### # Autor: Frank Mankel # Startup-Script # Wireguard # Kontakt: frank.mankel@gmail.com # ############################################################################################### ip link add wg0 type wireguard ip address add dev wg0 10.10.0.1/8 wg setconf wg0 /etc/wireguard/wg0.conf ip link set up dev wg0 Danach Datei ausführbar machen chmod +x /root/wireguard_start.sh In rc.local /root/wireguard_start.sh eintragen - Fertig!