Autofac injecten

Da mich das eben ein paar Minuten gekostet hat, will ich das einmal festhalten.

Folgendes NuGet muss im Projekt inkludiert sein: Autofac.Extensions.DependencyInjection

HostApplication:
[crayon-6767089897548595185493/]
WebApplication:
[crayon-676708989754d423734920/]
 

 

 




Docker auf Windows installieren ohne Docker Desktop

Die DockerCLI und DockerEngine sind Freeware und OpenSource, im Business Bereich muss die Docker Desktop Anwendung erworben werden. Um Docker nutzen zu können, braucht man nicht unbedingt Docker Desktop. Auch wenn Docker Desktop einem bei der Einrichtung vieles einfacher macht. Hier soll eine Schritt für Schritt Anleitung folgen

Alle Schritte nutzen PowerShell oder meine Empfehlung „Windows Terminal Canary“

WSL (Windows-Subsystem für Linux )

Über WSL läuft eine Linux distro unter Windows.

hat man noch kein WSL installiert, kann über diesen Befehl eine Distro ausgewählt werden. Standard ist Ubuntu, ich nutze hier debian.
[crayon-6767089897a04868793515/]
um WSL zu installieren gibt man folgenden Befehl ein
[crayon-6767089897a08274683096/]
Da das Linux System CPU und RAM Resourcen verbraucht, kann man diese einschränken. Dazu wird eine .wslconfig Datei im Userverzeichnis erstellt
[crayon-6767089897a0a950142592/]
In Windows Explorer %UserProfile% eingeben und die erstellte .wslconfig optional bearbeiten:
[crayon-6767089897a0b517724444/]
jetzt wsl eingeben und wir befinden uns in der Kommandozeile von Linux

Als erstes sollte man die distro aktualisieren
[crayon-6767089897a0c398230247/]

Optional: WSL Image verschieben

Es kann Sinnvoll sein, die WSL Images nicht im Standard Verzeichnis zu haben. Daher kann die WSL Image jederzeit umziehen.

  1. Name des WSL-Images bestimmen. In meinem Fall ist es „Debian“:
    [crayon-6767089897a0d775911226/]
  2. als tar exportieren:
    [crayon-6767089897a0f657575289/]
  3. In WSL das image lösen:
    [crayon-6767089897a10545857206/]
  4. 2 Verzeichnisse erstellen. Mein neues Verzeichnis ist D:\Docker\wsl
    [crayon-6767089897a11579392017/]
  5.  WSL herunterfahren:
    [crayon-6767089897a12884088079/]
  6. Import starten: wsl –import Debian
    [crayon-6767089897a13295582474/]
  7. Neues Image starten:
    [crayon-6767089897a14547883569/]
  8. Optional:
    [crayon-6767089897a15301745032/]

Docker installieren und einrichten

Zunächst werden benötigte Repositories für das Generieren von Zertifikaten installiert und dann docker selbst. Wichtig: Die Zeilen hier unten so wie die sind nacheinander, Zeile für Zeile kopieren. Nicht mehrere Zeilen miteinander in das Terminal einfügen. Aufforderungen mit Y und Enter bestätigen
[crayon-6767089897a16310328578/]
[crayon-6767089897a18364256531/]
Docker Daemon starten. Wenn der nicht weiter geht, Terminal schließen und neuen Terminal mit wsl starten
[crayon-6767089897a19887611605/]
Docker müsste jetzt installiert sein. (optional) Das testen wir, indem wir ein hello-world container laufen lassen:
[crayon-6767089897a1a812655829/]
Damit unser aktueller User nicht immer sudo eingeben muss, können wir ihn zu der Gruppe der Docker Administratoren hinzufügen. Evtl. ist die Gruppe bereits vorhanden, dann Meldung ignorieren.
[crayon-6767089897a1b798640340/]

Um sicherzustellen, dass Docker bei jeden Neustart läuft, folgende Befehle ausführen:

[crayon-6767089897a1c148892809/]
Damit auch der dockerd nach dem Start läuft, muss man ein script einfügen. systemctl kann man mit WSL leider nicht nutzen.

Wir legen fest, dass wie sudo bei dem aktuellen Benutzer Benutzer gehandhabt werden soll. Nämlich soll für dockerd kein Passwort erfragt werden:
[crayon-6767089897a1d961840538/]
ganz unten folgendes hinzufügen und Benutzer gegeben falls anpassen:
[crayon-6767089897a1e391100317/]
Jetzt müssen wir die bash bearbeiten, damit nach reboot das Skript ausgeführt wird
[crayon-6767089897a20779097628/]
mit „Bild runter“-Taste kann man bis ganz unten blättern und dort folgenden Code einfügen. Mit Strg+X, dann Y und Enter wieder raus:
[crayon-6767089897a21828873322/]
Shell neustarten:
[crayon-6767089897a22806059848/]
WSL beenden:
[crayon-6767089897a23907079598/]
und WSL reboot:
[crayon-6767089897a24576834068/]
Falls das nicht geht, kann ein Windows Job eingerichtet werden, der wsl automatisch bei Windows Start ausführt
[crayon-6767089897a25741925119/]
Unter Aufgabenplanung in Windows diesen Task als „Unabhängig von der Benutzeranmeldung“ konfigurieren. Sonst funktioniert dieser Task nicht

Linux Docker, Windows bekannt machen

Docker läuft nun auf unserer WSL Linux Maschine. Das nützt uns wenig, da wir in PowerShell nicht immer auf die WSL Linux Maschine zugreifen wollen. Wir wollen einfach docker eingeben und damit die docker Instanz auf der Linux Maschine meinen. Daher erstellen wir jetzt die Brücke.

Zuerst müssen wir das in Linux erlauben. Folgender Befehl öffnet einen Editor:
[crayon-6767089897a26658161832/]
dort mit Strg+V folgendes einfügen:
[crayon-6767089897a27324662077/]
Mit Strg+X , dann Y und Enter speichern

Mit exit beenden wir die WSL Kommandozeile

Jetzt muss unter Windows eine Umgebungsvariable für diesen Docker Host angelegt werden (Terminal muss als Admin laufen):
[crayon-6767089897a28847134566/]

Docker CLI unter Windows installieren

Wenn man bereits choco nutzt, geht das easy mit

[crayon-6767089897a29737698555/]
Ansonsten hier herunterladen:

https://download.docker.com/win/static/stable/x86_64/

und unter einem Verzeichnis z.B. C:\DockerCli ablegen. Nun muss dieses Verzeichnis in den Umgebungsvariablen unter Path eingetragen werden

über folgenden Befehl müsste Docker nun aufrufbar sein
[crayon-6767089897a2a779426528/]

Man muss jetzt wissen, dass es nun 3 Ebenen gibt.

Windows -> WSL Linux -> Docker Container.

WSL hat für Windows automatisch ein mount in dem Ordner /mnt/ eingerichtet

Möchte man nun, dass der Container auf das Windows Verzeichnis C:\Temp bindet, so muss man stattdessen /mnt/c/Temp eingeben

Referenz:

Docker and WSL2 without Docker Desktop | by Romain Bruyère | Medium

files folders – Change the storage location of a WSL2 – Super User

How to automatically start the Docker daemon on WSL2 – NillsF blog

Portainer installieren mit SSL Zertifikat

Portainer über docker installieren
[crayon-6767089897a2b942481632/]
! Funktioniert noch nicht. Das Zertifikat wird vom Browser nicht anerkannt !

Zertifikat auf der Linux WSL erzeugen und das Zertifikat nach D:\Docker kopieren:
[crayon-6767089897a2c450880154/]
 




dotNet Docker veröffentlichen

  1. Wenn ein eigener nuget Server mit http verwendet wird, dann muss dort wo die sln liegt, eine NuGet.config angelegt werden:
    [crayon-6767089897db6534914396/]
  2. die csproj bearbeiten:
    [crayon-6767089897dba237725717/]
     
  3. Docker Desktop muss vorinstalliert sein und mit wsl2 laufen
    [crayon-6767089897dbb898051788/]
  4. Https Zertifikat für Entwicklung erstellen: https://learn.microsoft.com/en-us/aspnet/core/security/docker-https?view=aspnetcore-8.0#running-pre-built-container-images-with-https
    [crayon-6767089897dbc357659935/]
     



Docker

Docker Desktop (AMD64)

Docker Desktop: The #1 Containerization Tool for Developers | Docker

In der Regel reicht auch nur die cli
[crayon-6767089897f22325700207/]
und Rancher Desktop
[crayon-6767089897f24709899422/]
 

Portainer

https://docs.portainer.io/start/install-ce/server/docker/wsl
[crayon-6767089897f26536230749/]
WebAdmin: https://localhost:9443/

Microsoft Sql Server

microsoft/mssql-server – Docker Image | Docker Hub
[crayon-6767089897f27643929757/]
Passwort setzen nicht vergessen

Im Container, unter volumes als bind, ein Verzeichnis einrichten, wo die backups liegen und wo die volumes liegen sollen

RabbitMQ

[crayon-6767089897f28823779715/]
WebAdmin: https://localhost:15672/

Benutzername: guest

Password: guest

Hashicorp/Vault
[crayon-6767089897f29479545111/]
hashicorp/vault – Docker Image | Docker Hub

Weboberfläche: http://localhost:8200/




Logging Structured Message Templates selbst verwenden

Um selbst Strukturierte Messages Templates wie im Logging zu verwenden, kann man folgende Annotations nutzen:
[crayon-676708989810f094537459/]
 




Discord Installation „a fatal javascript error occurred“

Das war die einzige Lösung, die funktionierte, um Discord zu installieren über choco:

I have a problem with discord, and its no the logo. : r/discordapp (reddit.com)

 

Dazu das Powershell-Script. Ausprobiert und getestet.
[crayon-6767089898277684421483/]
 

 




Jupyter unter Windows installieren

Mit Jupyter (Julia + Python) kann man interaktive Notebooks erstellen.

Ein Notebook besteht aus Cells, die entweder als Text (markdown) oder Code (Python, etc.) nacheinander erstellt werden können.

Der Code kann im Notebook ausgeführt werden und visuell dargestellt werden. Variablen können Code-Zelle übergreifend genutzt werden.

Damit der Code ausgeführt werden kann, wird ein Kernel benötigt, der wie ein Interpreter den Code verarbeitet und ausgibt.

Um Jupyter nutzen zu können, muss dieser zunächst installiert werden.

Installation Jupyter

Jupyter selbst benötigt Python und für die Installation den Python package manager, welcher in Python inkludiert ist.
[crayon-67670898983db945585889/]
Über den Befehl

[crayon-67670898983de489804965/]

wird der JupyterLab Server lokal gestartet. Dieser ist erreichbar unter http://127.0.0.1:8888

In der Konsole ist auch der Token hinterlegt, den man für die Ersteinrichtung benötigt.

Editoren

JupyterLab Web

Über http://127.0.0.1:8888 kommt man auf die Schaltzentrale von JupyterLab.

Dort kann man auch die Notebooks erstellen und bearbeiten

Azure Data Tool

My experience working with notebooks in Azure Data Studio – Data on Wheels – Kristyna Ferris & Steve Hughes (wordpress.com)

JupyterLab unterstützt von Haus aus nur Python als Kernel. Weitere Kernels müssen nachinstalliert werden.

Leider gibt es kein Kernel für SQL. Aber Azure Data Tools hat ein eingebautes Kernel für SQL Server.

Die Nutzung inkl. Copilot ist wirklich komfortabel.

VS Code

Für VsCode müssen die Jupyter Extensions heruntergeladen werden.

Über Strg + Shift + P kann eine neue Jupyter Datei erstellt werden.

Oben rechts in der Ecke wählt man „Select Kernel“ aus und gibt als Adresse http://127.0.0.1:8888 und das Passwort ein.

Danach kann man die Kernels aus JupyterLab nutzen

nteract

nteract ist ein weiterer Editor um Jupyter Notebooks zu erstellen. Dieser kann mit CodeMirror und Monaco arbeiten.

nteract: write your next code-driven story.

Weitere Kernel

[crayon-67670898983df881381495/]

.NET Interactive (C#, F#, PowerShell)

[crayon-67670898983e1946831527/]




VS Code SQL Fenster horizontal ausrichten




Cronicle in Rocky Linux installieren

Cronicle

nodeJs über dnf installieren. Nicht über nvm, weil nvm nur für den jeweilligen User installiert
[crayon-67670898985b3110778481/]
So wie hier beschrieben, manuelle Schritte durchführen. Wichtig, vorher die aktuelle Version herausfinden und im Archiv ersetzen
[crayon-67670898985b8759553438/]
Firewall Port freischalten
[crayon-67670898985ba596709263/]
Maschine neustarten
[crayon-67670898985bc341472944/]
 

 




rclone OneDrive

rclone Konfigurieren

1. zu mnt Verzeichnis bewegen mit cd und ls

2. OneDrive Ordner erstellen:
[crayon-67670898987a9786207070/]
3. rclone installieren
[crayon-67670898987ad230755050/]
4. Neue rclone config erstellen
[crayon-67670898987af149966970/]
5. n -> New remote

Name: OneDrive

Nach Nummer suchen. In meinem Fall 27 Microsoft OneDrive

client_id mit Enter überspringen, client_secret mit Enter auch überspringen

1 für Microsoft Cloud Global aussuchen (Evtl. geht auch 3 Germany)

Edit advanced config? -> n

Der nächste Teil ist ein wenig tricky. Denn man benötigt den Microsoft 2FA Secret. Diesen bekommt man nur, wenn man über einen Browser die Anmeldung bestätigt.

Da die Linux Maschine nicht über einen Webbrowser verfügt, muss man dies auf Windows Rechner machen und die rclone config auf die Linux Maschine übertragen.

OneDrive Secret Token besorgen

1. Chocolatey installieren: Chocolatey Software | Installing Chocolatey

2. rclone installieren:
[crayon-67670898987b1466377149/]
3. OneDrive authentifizieren.
[crayon-67670898987b4822298024/]
Es erscheint in PowerShell Konsole der Token:
[crayon-67670898987b6747435810/]
Dieser Token muss kopiert werden.

In der Linux Maschine sind wir noch beim Konfigurieren.

Die Frage ob ein Browser geöfnet werden soll wird mit n beantwortet und der token dort eingefügt.

4. Choose a number from below, or type in an existing value ->  1/ OneDrive Personal or Business

5. Found drive „root“ of type „personal“ -> y für yes, default

6. Nächste Frage wieder mit y -> y) Yes this is OK (default)

7. y) Yes this is OK (default)

8. q -> Quit Config.

 

Die Konfiguration ist abgeschlossen.

OneDrive Storage mounten

Fuse installieren:
[crayon-67670898987b8395002301/]
mounten
[crayon-67670898987ba351261365/]
Es sollte erscheinen [1] und die wie groß das Laufwerk ist.

wenn jetzt zu dem Verzeichnis navigiert wird, kann mit ls die Struktur ersehen werden.

Die Dateien sind nicht abgerufen und synchronisiert.