aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJPVenson <github@jpb.email>2025-01-27 18:32:36 +0000
committerJPVenson <github@jpb.email>2025-01-27 18:32:36 +0000
commit4ce0d498abe1c52f92805a2cb04cbcfe3218817e (patch)
tree02b75baedfcd55ca0521b9f5e709152223ed57c3
parentce00bc076e9a97197e7e7e83276013518ce84ec5 (diff)
Added pgsql devcontainer
-rw-r--r--.devcontainer/pgsql/Dockerfile8
-rw-r--r--.devcontainer/pgsql/devcontainer.json44
-rw-r--r--.devcontainer/pgsql/docker-compose.yaml51
3 files changed, 103 insertions, 0 deletions
diff --git a/.devcontainer/pgsql/Dockerfile b/.devcontainer/pgsql/Dockerfile
new file mode 100644
index 000000000..800bec76f
--- /dev/null
+++ b/.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
diff --git a/.devcontainer/pgsql/devcontainer.json b/.devcontainer/pgsql/devcontainer.json
new file mode 100644
index 000000000..db7f84c89
--- /dev/null
+++ b/.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
+ }
+}
diff --git a/.devcontainer/pgsql/docker-compose.yaml b/.devcontainer/pgsql/docker-compose.yaml
new file mode 100644
index 000000000..88954d564
--- /dev/null
+++ b/.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: