From 52cf31fccd03e2853befd7da3f398398d0318e84 Mon Sep 17 00:00:00 2001 From: Maygician Date: Fri, 2 Oct 2020 23:05:38 +0700 Subject: [PATCH] docker devenv WIP --- docker/docker-compose.yaml | 7 +++++ docker/elixir_dev/.Dockerfile | 54 +++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 docker/docker-compose.yaml create mode 100644 docker/elixir_dev/.Dockerfile diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml new file mode 100644 index 0000000..031af01 --- /dev/null +++ b/docker/docker-compose.yaml @@ -0,0 +1,7 @@ +version: 3.8 +services: + elixir_dev: + build: + context: ./elixir_dev + ports: + - 4000:4000 \ No newline at end of file diff --git a/docker/elixir_dev/.Dockerfile b/docker/elixir_dev/.Dockerfile new file mode 100644 index 0000000..730fd5a --- /dev/null +++ b/docker/elixir_dev/.Dockerfile @@ -0,0 +1,54 @@ +FROM ubuntu:18.04 + +# install ubuntu packages +RUN apt-get update -q \ + && apt-get install -y \ + git \ + curl \ + locales \ + build-essential \ + autoconf \ + libncurses5-dev \ + libwxgtk3.0-dev \ + libgl1-mesa-dev \ + libglu1-mesa-dev \ + libpng-dev \ + libssh-dev \ + unixodbc-dev \ + && apt-get clean + +# install asdf and its plugins +# ASDF will only correctly install plugins into the home directory as of 0.7.5 +# so .... Just go with it. +ENV ASDF_ROOT /root/.asdf +ENV PATH "${ASDF_ROOT}/bin:${ASDF_ROOT}/shims:$PATH" + +RUN git clone https://github.com/asdf-vm/asdf.git ${ASDF_ROOT} --branch v0.7.5 \ + && asdf plugin-add erlang https://github.com/asdf-vm/asdf-erlang \ + && asdf plugin-add elixir https://github.com/asdf-vm/asdf-elixir \ + && asdf plugin-add nodejs https://github.com/asdf-vm/asdf-nodejs \ + && ${ASDF_ROOT}/plugins/nodejs/bin/import-release-team-keyring + +# set the locale +RUN locale-gen en_US.UTF-8 +ENV LANG en_US.UTF-8 +ENV LANGUAGE en_US:en +ENV LC_ALL en_US.UTF-8 +# install erlang +ENV ERLANG_VERSION 22.0.7 +RUN asdf install erlang ${ERLANG_VERSION} \ + && asdf global erlang ${ERLANG_VERSION} + +# install elixir +ENV ELIXIR_VERSION 1.10.3-otp-21 +RUN asdf install elixir ${ELIXIR_VERSION} \ + && asdf global elixir ${ELIXIR_VERSION} + +# install local Elixir hex and rebar +RUN mix local.hex --force \ + && mix local.rebar --force + +# install nodejs +ENV NODEJS_VERSION 12.8.4 +RUN asdf install nodejs ${NODEJS_VERSION} \ + && asdf global nodejs ${NODEJS_VERSION} \ No newline at end of file