commit f70995be98c1fcd1b88466b56558bb4d31b7da6e Author: James Harton Date: Wed Jul 19 12:56:16 2023 +1200 chore: Add basic ASDF container. diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4cbc12d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,52 @@ +FROM ubuntu:latest + +ENV DEBIAN_FRONTEND="noninteractive" + +# Install basic dependencies +RUN apt-get -q -y update && \ + apt-get -q -y --no-install-recommends install autoconf automake \ + bash build-essential bzip2 ca-certificates curl dpkg-dev file \ + g++ gcc git-core imagemagick libbz2-dev libc6-dev libdb-dev libevent-dev \ + libffi-dev libgdbm-dev libglib2.0-dev libgmp-dev libjpeg-dev libkrb5-dev \ + liblzma-dev libmagickcore-dev libmagickwand-dev libmaxminddb-dev \ + libncurses-dev libncurses5-dev libncursesw5-dev libpng-dev libpq-dev \ + libreadline-dev libsctp-dev libsqlite3-dev libssl-dev libtool libwebp-dev \ + libxml2-dev libxslt-dev libyaml-dev locales make make mercurial patch python3 \ + unixodbc-dev unzip wget xz-utils zlib1g-dev zsh gnupg inotify-tools less \ + postgresql-client ssh direnv && apt-get -q -y clean + +RUN locale-gen en_AU.UTF-8 +ENV LANG en_AU.UTF-8 +ENV LANGUAGE en_AU:en +ENV LC_ALL en_AU.UTF-8 + +ARG USERNAME=user +ARG USER_UID=1000 +ARG USER_GID=$USER_UID +RUN groupadd --gid ${USER_GID} ${USERNAME} +RUN useradd --shell /usr/bin/zsh --uid ${USER_UID} --gid ${USER_GID} -m ${USERNAME} +RUN touch /entrypoint.sh && chown ${USERNAME}:${USERNAME} /entrypoint.sh +RUN mkdir -p /var/tmp/history && chown -R ${USERNAME}:${USERNAME} /var/tmp/history + +USER ${USERNAME} +ENV HOME=/home/${USERNAME} + +WORKDIR $HOME + +# Install ASDF +ARG ASDF_VERSION=0.10.2 +RUN git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v${ASDF_VERSION} && \ + echo '\nsource $HOME/.asdf/asdf.sh' >> ~/.bashrc && \ + echo '\nsource $HOME/.asdf/asdf.sh' >> ~/.zshrc + +# Generate an entrypoint.sh +RUN echo '#!/bin/bash' > /entrypoint.sh && \ + echo 'source ~/.asdf/asdf.sh' >> /entrypoint.sh && \ + echo 'eval "$(direnv hook bash)"' >> /entrypoint.sh && \ + echo 'exec "$@"' >> /entrypoint.sh && \ + chmod 755 /entrypoint.sh + +ENTRYPOINT [ "/entrypoint.sh" ] + +CMD ["zsh"] +