Sfoglia il codice sorgente

Added pgsql devcontainer

JPVenson 4 mesi fa
parent
commit
4ce0d498ab

+ 8 - 0
.devcontainer/pgsql/Dockerfile

@@ -0,0 +1,8 @@
+FROM mcr.microsoft.com/devcontainers/dotnet:1-8.0-bookworm
+
+# [Optional] Uncomment this section to install additional OS packages.
+# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
+#     && apt-get -y install --no-install-recommends <your-package-list-here>
+
+# [Optional] Uncomment this line to install global node packages.
+# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1

+ 44 - 0
.devcontainer/pgsql/devcontainer.json

@@ -0,0 +1,44 @@
+{
+    "name": "Development Jellyfin Server",
+    "image": "mcr.microsoft.com/devcontainers/dotnet:9.0-bookworm",
+    "dockerComposeFile": "docker-compose.yml",
+    // restores nuget packages, installs the dotnet workloads and installs the dev https certificate
+    "postStartCommand": "sudo dotnet restore; sudo dotnet workload update; sudo dotnet dev-certs https --trust; sudo bash \"./.devcontainer/install-ffmpeg.sh\"",
+    // reads the extensions list and installs them
+    "postAttachCommand": "cat .vscode/extensions.json | jq -r .recommendations[] | xargs -n 1 code --install-extension",
+    "forwardPorts": ["pgadmin:8081"],
+	"portsAttributes": {
+		"8081": {
+			"label": "pgAdmin",
+			"onAutoForward": "notify",
+			"requireLocalPort": true
+		},
+        "8096": {
+			"label": "jellyfinapi",
+			"onAutoForward": "notify",
+			"requireLocalPort": true
+		}
+	},
+    "features": {
+        "ghcr.io/devcontainers/features/dotnet:2": {
+            "version": "none",
+            "dotnetRuntimeVersions": "9.0",
+            "aspNetCoreRuntimeVersions": "9.0"
+        },
+        "ghcr.io/devcontainers-contrib/features/apt-packages:1": {
+            "preserve_apt_list": false,
+            "packages": [
+                "libfontconfig1"
+            ]
+        },
+        "ghcr.io/devcontainers/features/docker-in-docker:2": {
+            "dockerDashComposeVersion": "v2"
+        },
+        "ghcr.io/devcontainers/features/github-cli:1": {},
+        "ghcr.io/eitsupi/devcontainer-features/jq-likes:2": {}
+    },
+    "hostRequirements": {
+        "memory": "8gb",
+        "cpus": 4
+    }
+}

+ 51 - 0
.devcontainer/pgsql/docker-compose.yaml

@@ -0,0 +1,51 @@
+version: '3.8'
+
+services:
+  app:
+    build:
+      context: .
+      dockerfile: Dockerfile
+
+    volumes:
+      - ../..:/workspaces:cached
+
+    # Overrides default command so things don't shut down after the process ends.
+    command: sleep infinity
+
+    # Runs app on the same network as the database container, allows "forwardPorts" in devcontainer.json function.
+    network_mode: service:pgadmin
+
+    # Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
+    # user: root
+
+    # Use "forwardPorts" in **devcontainer.json** to forward an app port locally.
+    # (Adding the "ports" property to this file will not forward from a Codespace.)
+
+  db:
+    image: postgres:14.3
+    restart: unless-stopped
+    volumes:
+      - postgres-data:/var/lib/postgresql/data
+    environment:
+      POSTGRES_PASSWORD: jellyfin
+      POSTGRES_USER: password
+      POSTGRES_DB: Jellyfin
+  pgadmin:
+    image: dpage/pgadmin4
+    restart: unless-stopped
+    volumes:
+      - ./pgadmin:/pgadmin
+      - pgadmin-data:/var/lib/pgadmin
+    environment:
+      - PGADMIN_DEFAULT_EMAIL=user@domain.com
+      - PGADMIN_DEFAULT_PASSWORD=SuperSecret
+      - PGADMIN_LISTEN_PORT=8081
+      - PGADMIN_SERVER_JSON_FILE=/pgadmin/servers.json
+      - PGADMIN_CONFIG_SERVER_MODE=False
+
+    # Add "forwardPorts": ["5432"] to **devcontainer.json** to forward PostgreSQL locally.
+    # (Adding the "ports" property to this file will not forward from a Codespace.)
+
+volumes:
+  postgres-data:
+  pgadmin-data: