Pamela Fox
commited on
Commit
·
20c47af
1
Parent(s):
f28be2b
postgres devcontainer
Browse files- .devcontainer/Dockerfile +7 -6
- .devcontainer/devcontainer.json +35 -23
- .devcontainer/docker-compose.yml +38 -0
- .env.sample +4 -0
- .gitignore +1 -1
.devcontainer/Dockerfile
CHANGED
@@ -1,8 +1,9 @@
|
|
1 |
-
|
|
|
2 |
|
3 |
-
# [Choice] Python version (use -bullseye variants on local arm64/Apple Silicon): 3, 3.10, 3.9, 3.8, 3.7, 3.6, 3-bullseye, 3.10-bullseye, 3.9-bullseye, 3.8-bullseye, 3.7-bullseye, 3.6-bullseye, 3-buster, 3.10-buster, 3.9-buster, 3.8-buster, 3.7-buster, 3.6-buster
|
4 |
-
ARG VARIANT=bullseye
|
5 |
-
FROM mcr.microsoft.com/vscode/devcontainers/base:0-${VARIANT}
|
6 |
RUN curl -fsSL https://aka.ms/install-azd.sh | bash
|
7 |
-
|
8 |
-
|
|
|
|
|
|
|
|
1 |
+
ARG VARIANT=3
|
2 |
+
FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT}
|
3 |
|
|
|
|
|
|
|
4 |
RUN curl -fsSL https://aka.ms/install-azd.sh | bash
|
5 |
+
|
6 |
+
ENV PYTHONUNBUFFERED 1
|
7 |
+
|
8 |
+
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
9 |
+
&& apt-get -y install --no-install-recommends postgresql-client
|
.devcontainer/devcontainer.json
CHANGED
@@ -1,18 +1,23 @@
|
|
1 |
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
|
2 |
// https://github.com/microsoft/vscode-dev-containers/tree/v0.245.0/containers/python-3
|
3 |
{
|
4 |
-
"name": "Python 3",
|
5 |
-
"
|
6 |
-
"
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
// Configure tool-specific properties.
|
18 |
"customizations": {
|
@@ -20,6 +25,18 @@
|
|
20 |
"vscode": {
|
21 |
// Set *default* container specific settings.json values on container create.
|
22 |
"settings": {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
"python.defaultInterpreterPath": "/usr/local/bin/python",
|
24 |
"python.linting.enabled": true,
|
25 |
"python.linting.pylintEnabled": true,
|
@@ -42,24 +59,19 @@
|
|
42 |
|
43 |
// Add the IDs of extensions you want installed when the container is created.
|
44 |
"extensions": [
|
|
|
45 |
"ms-python.python",
|
46 |
-
"ms-python.vscode-pylance"
|
|
|
|
|
47 |
]
|
48 |
}
|
49 |
},
|
50 |
|
|
|
51 |
// Use 'postCreateCommand' to run commands after the container is created.
|
52 |
"postCreateCommand": "pip install -r requirements-dev.txt && pre-commit install",
|
53 |
|
54 |
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
|
55 |
-
"remoteUser": "vscode"
|
56 |
-
|
57 |
-
"features": {
|
58 |
-
"ghcr.io/devcontainers/features/azure-cli:1": {
|
59 |
-
"version": "latest"
|
60 |
-
},
|
61 |
-
"ghcr.io/devcontainers/features/python:1": {
|
62 |
-
"version": "os-provided"
|
63 |
-
}
|
64 |
-
}
|
65 |
}
|
|
|
1 |
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
|
2 |
// https://github.com/microsoft/vscode-dev-containers/tree/v0.245.0/containers/python-3
|
3 |
{
|
4 |
+
"name": "Python 3 & PostgreSQL",
|
5 |
+
"dockerComposeFile": "docker-compose.yml",
|
6 |
+
"service": "app",
|
7 |
+
"workspaceFolder": "/workspace",
|
8 |
+
"forwardPorts": [8000, 5432],
|
9 |
+
|
10 |
+
"features": {
|
11 |
+
"ghcr.io/devcontainers/features/azure-cli:1": {
|
12 |
+
"version": "latest"
|
13 |
+
},
|
14 |
+
"ghcr.io/devcontainers/features/github-cli:1": {
|
15 |
+
"version": "latest"
|
16 |
+
},
|
17 |
+
"ghcr.io/devcontainers/features/python:1": {
|
18 |
+
"version": "os-provided"
|
19 |
+
}
|
20 |
+
},
|
21 |
|
22 |
// Configure tool-specific properties.
|
23 |
"customizations": {
|
|
|
25 |
"vscode": {
|
26 |
// Set *default* container specific settings.json values on container create.
|
27 |
"settings": {
|
28 |
+
"sqltools.connections": [
|
29 |
+
{
|
30 |
+
"name": "Container database",
|
31 |
+
"driver": "PostgreSQL",
|
32 |
+
"previewLimit": 50,
|
33 |
+
"server": "localhost",
|
34 |
+
"port": 5432,
|
35 |
+
"database": "app",
|
36 |
+
"username": "app_user",
|
37 |
+
"password": "app_password"
|
38 |
+
}
|
39 |
+
],
|
40 |
"python.defaultInterpreterPath": "/usr/local/bin/python",
|
41 |
"python.linting.enabled": true,
|
42 |
"python.linting.pylintEnabled": true,
|
|
|
59 |
|
60 |
// Add the IDs of extensions you want installed when the container is created.
|
61 |
"extensions": [
|
62 |
+
"ms-azuretools.azure-dev",
|
63 |
"ms-python.python",
|
64 |
+
"ms-python.vscode-pylance",
|
65 |
+
"mtxr.sqltools",
|
66 |
+
"mtxr.sqltools-driver-pg"
|
67 |
]
|
68 |
}
|
69 |
},
|
70 |
|
71 |
+
|
72 |
// Use 'postCreateCommand' to run commands after the container is created.
|
73 |
"postCreateCommand": "pip install -r requirements-dev.txt && pre-commit install",
|
74 |
|
75 |
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
|
76 |
+
"remoteUser": "vscode"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
}
|
.devcontainer/docker-compose.yml
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
version: "3"
|
2 |
+
|
3 |
+
services:
|
4 |
+
app:
|
5 |
+
build:
|
6 |
+
context: ..
|
7 |
+
dockerfile: .devcontainer/Dockerfile
|
8 |
+
args:
|
9 |
+
# [Choice] Python version: 3, 3.8, 3.7, 3.6
|
10 |
+
VARIANT: 3.9
|
11 |
+
# On Linux, you may need to update USER_UID and USER_GID below if not your local UID is not 1000.
|
12 |
+
USER_UID: 1000
|
13 |
+
USER_GID: 1000
|
14 |
+
|
15 |
+
volumes:
|
16 |
+
- ..:/workspace:cached
|
17 |
+
|
18 |
+
# Overrides default command so things don't shut down after the process ends.
|
19 |
+
command: sleep infinity
|
20 |
+
|
21 |
+
# Runs app on the same network as the database container, allows "forwardPorts" in devcontainer.json function.
|
22 |
+
network_mode: service:db
|
23 |
+
|
24 |
+
db:
|
25 |
+
image: postgres:latest
|
26 |
+
restart: unless-stopped
|
27 |
+
volumes:
|
28 |
+
- postgres-data:/var/lib/postgresql/data
|
29 |
+
environment:
|
30 |
+
POSTGRES_DB: app
|
31 |
+
POSTGRES_USER: app_user
|
32 |
+
POSTGRES_PASSWORD: app_password
|
33 |
+
|
34 |
+
# Add "forwardPorts": ["5432"] to **devcontainer.json** to forward PostgreSQL locally.
|
35 |
+
# (Adding the "ports" property to this file will not forward from a Codespace.)
|
36 |
+
|
37 |
+
volumes:
|
38 |
+
postgres-data:
|
.env.sample
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
DBHOST=localhost
|
2 |
+
DBNAME=app
|
3 |
+
DBUSER=app_user
|
4 |
+
DBPASS=app_password
|
.gitignore
CHANGED
@@ -2,5 +2,5 @@
|
|
2 |
__pycache__/
|
3 |
staticfiles/
|
4 |
.coverage
|
5 |
-
|
6 |
.azure
|
|
|
2 |
__pycache__/
|
3 |
staticfiles/
|
4 |
.coverage
|
5 |
+
.env
|
6 |
.azure
|