Our great sponsors
-
vscode-remote-release
Visual Studio Code Remote Development: Open any folder in WSL, in a Docker container, or on a remote machine using SSH and take advantage of VS Code's full feature set.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
FROM ubuntu as dev RUN apt-get update -qq && \ apt-get install -qq -y \ curl \ git \ dirmngr \ gpg \ gawk \ unzip \ build-essential \ autoconf \ libssl-dev \ libncurses5-dev \ m4 \ libssh-dev RUN useradd -ms $(which bash) asdf USER asdf RUN git clone https://github.com/asdf-vm/asdf.git $HOME/.asdf --branch v0.8.1 && \ echo '. $HOME/.asdf/asdf.sh' >> $HOME/.bashrc && \ echo '. $HOME/.asdf/asdf.sh' >> $HOME/.profile ENV PATH /home/asdf/.asdf/bin:/home/asdf/.asdf/shims:$PATH RUN /bin/bash -c "\ asdf plugin-add elixir && \ asdf plugin-add erlang && \ asdf plugin-add nodejs \ " WORKDIR /app COPY .tool-versions /app RUN /bin/bash -c "ls -la && asdf install" ENV LANG C.UTF-8 WORKDIR /workspace
VSCode with Remote-Container extension installed.
In the Transhook project, I'm using asdf to manage tool versions, so Instead of build upon the hexpm/elixir, I will use the ubuntu as the base image, then add essential tools (Elixir, Erlang, Node.js) to the dev environment.
The Dev Container also supports building from a Dockerfile or even Docker Compose, here I will take the second one, I'll show you why in the following content.
VSCode with Remote-Container extension installed.