aboutsummaryrefslogtreecommitdiff
path: root/.devcontainer/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to '.devcontainer/Dockerfile')
-rw-r--r--.devcontainer/Dockerfile42
1 files changed, 42 insertions, 0 deletions
diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
new file mode 100644
index 000000000..ffff104f4
--- /dev/null
+++ b/.devcontainer/Dockerfile
@@ -0,0 +1,42 @@
+# Update the VARIANT arg in docker-compose.yml to pick an Elixir version: 1.9, 1.10, 1.10.4
+ARG VARIANT=latest
+FROM elixir:${VARIANT}
+
+# This Dockerfile adds a non-root user with sudo access. Update the “remoteUser” property in
+# devcontainer.json to use it. More info: https://aka.ms/vscode-remote/containers/non-root-user.
+ARG USERNAME=vscode
+ARG USER_UID=1000
+ARG USER_GID=$USER_UID
+
+# Options for common package install script
+ARG INSTALL_ZSH="true"
+ARG UPGRADE_PACKAGES="true"
+ARG COMMON_SCRIPT_SOURCE="https://raw.githubusercontent.com/microsoft/vscode-dev-containers/master/script-library/common-debian.sh"
+ARG COMMON_SCRIPT_SHA="dev-mode"
+
+# Install needed packages and setup non-root user. Use a separate RUN statement to add your own dependencies.
+RUN apt-get update \
+ && export DEBIAN_FRONTEND=noninteractive \
+ && apt-get -y install --no-install-recommends curl ca-certificates 2>&1 \
+ && curl -sSL ${COMMON_SCRIPT_SOURCE} -o /tmp/common-setup.sh \
+ && ([ "${COMMON_SCRIPT_SHA}" = "dev-mode" ] || (echo "${COMMON_SCRIPT_SHA} */tmp/common-setup.sh" | sha256sum -c -)) \
+ && /bin/bash /tmp/common-setup.sh "${INSTALL_ZSH}" "${USERNAME}" "${USER_UID}" "${USER_GID}" "${UPGRADE_PACKAGES}" \
+ #
+ # Install dependencies
+ && apt-get install -y build-essential \
+ #
+ # Clean up
+ && apt-get autoremove -y \
+ && apt-get clean -y
+
+RUN su ${USERNAME} -c "mix local.hex --force \
+ && mix local.rebar --force \
+ && mix archive.install --force hex phx_new ${PHOENIX_VERSION}"
+
+# [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 additional package.
+# RUN mix ...