From 9490bbdb439059527a4372f19aa1580fdd7c45bf Mon Sep 17 00:00:00 2001
From: Nicolas KAROLAK <nicolas@karolak.fr>
Date: Thu, 4 Jul 2019 13:47:42 +0000
Subject: [PATCH] add vscode devcontainer config

---
 .devcontainer/Dockerfile         | 59 ++++++++++++++++++++++++++++++++
 .devcontainer/devcontainer.json  | 15 ++++++++
 .devcontainer/docker-compose.yml | 21 ++++++++++++
 3 files changed, 95 insertions(+)
 create mode 100644 .devcontainer/Dockerfile
 create mode 100644 .devcontainer/devcontainer.json
 create mode 100644 .devcontainer/docker-compose.yml

diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
new file mode 100644
index 00000000..5c5c8d59
--- /dev/null
+++ b/.devcontainer/Dockerfile
@@ -0,0 +1,59 @@
+FROM ubuntu:bionic
+
+# Set the default shell to bash instead of sh
+ENV SHELL /bin/bash
+# Update path to include virtualenv
+ENV PATH "/usr/local/pyvenv/bin:${PATH}"
+# Set locales
+ENV LANG C.UTF-8
+ENV LC_ALL C.UTF-8
+
+# Configure apt
+ENV DEBIAN_FRONTEND=noninteractive
+RUN apt-get update && \
+    apt-get -y install --no-install-recommends apt-utils 2>&1
+
+# Install git, required tools
+RUN apt-get update && \
+    apt-get install -y \
+        apt-transport-https \
+        bash-completion \
+        build-essential \
+        ca-certificates \
+        curl \
+        git \
+        gnupg-agent \
+        libffi-dev \
+        libssl-dev \
+        lsb-release \
+        procps \
+        python3 \
+        python3-dev \
+        python3-venv \
+        shellcheck \
+        software-properties-common \
+        unzip \
+        vim-tiny \
+    2>&1
+
+# Configure shell
+RUN sed -i 's/#force_color_prompt=yes/force_color_prompt=yes/' /root/.bashrc && \
+    echo ". /etc/bash_completion" >> /root/.bashrc
+
+# Install Docker CE CLI.
+RUN curl -fsSL https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/gpg | apt-key add - 2>/dev/null && \
+    add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]') $(lsb_release -cs) stable" && \
+    apt-get update && \
+    apt-get install -y docker-ce-cli
+
+# Install Poetry
+RUN python3 -m venv /usr/local/pyvenv && \
+    pip install -U pip wheel 2>&1 && \
+    pip install psutil pyOpenSSL pyspf requests defusedxml 2>&1 && \
+    pip install black flake8 pre-commit pylint pysnooper 2>&1
+
+# Clean up
+RUN apt-get autoremove -y && \
+    apt-get clean -y && \
+    rm -rf /var/lib/apt/lists/*
+ENV DEBIAN_FRONTEND=dialog
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
new file mode 100644
index 00000000..f30f21e8
--- /dev/null
+++ b/.devcontainer/devcontainer.json
@@ -0,0 +1,15 @@
+{
+    "name": "envsetup",
+    "dockerComposeFile": "docker-compose.yml",
+    "service": "app",
+    "workspaceFolder": "/workspace",
+    "extensions": [
+        // editor
+        "editorconfig.editorconfig",
+        "mikestead.dotenv",
+        // python
+        "ms-python.python",
+        // docker
+        "peterjausovec.vscode-docker"
+    ]
+}
diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml
new file mode 100644
index 00000000..90ba9881
--- /dev/null
+++ b/.devcontainer/docker-compose.yml
@@ -0,0 +1,21 @@
+---
+
+version: '3'
+
+services:
+  app:
+    build:
+      context: ..
+      dockerfile: .devcontainer/Dockerfile
+    volumes:
+      - ..:/workspace
+      - ~/.config/git/config:/root/.config/git/config
+      - ~/.config/git/ignore:/root/.config/git/ignore
+      - ${SSH_AUTH_SOCK}:/ssh-agent
+      - /var/run/docker.sock:/var/run/docker.sock
+    environment:
+      - SSH_AUTH_SOCK=/ssh-agent
+    working_dir: /workspace
+    command: sleep infinity
+
+...
-- 
GitLab