ARG RELEASE |
ARG LAUNCHPAD_BUILD_ARCH |
LABEL org.opencontainers.image.ref.name=ubuntu |
LABEL org.opencontainers.image.version=23.10 |
ADD file:fb2da00b24905f9231165c1a3f037a78a00c19ca26c375a018728838dfeb82d2 in / |
CMD ["/bin/bash"] |
ARG USER_UID=1000 |
ARG USER_GID=1000 |
ARG DOCKER_GID=999 |
ARG WHEEL_GID=980 |
RUN |4 USER_UID=1000 USER_GID=1001 DOCKER_GID=999 WHEEL_GID=1000 /bin/sh -c echo 'remove existing ubuntu user' && groupdel --force ubuntu && userdel --force ubuntu && echo 'setup extra groups' && groupadd --gid ${WHEEL_GID} wheel && groupadd --gid ${DOCKER_GID} docker # buildkit |
ENV DEBIAN_FRONTEND=noninteractive |
RUN |4 USER_UID=1000 USER_GID=1001 DOCKER_GID=999 WHEEL_GID=1000 /bin/sh -c apt-get update && apt-get install -y software-properties-common && add-apt-repository ppa:fish-shell/release-3 && add-apt-repository ppa:neovim-ppa/unstable && apt-get update && apt-get install -y --no-install-recommends autoconf automake build-essential ca-certificates curl doas fish fop g++ gcc gfortran git gosu gpg gpg-agent groff jq less libbz2-1.0 libbz2-dev libc6-dev libcurl3-dev libffi-dev libgl1-mesa-dev libglu1-mesa-dev liblzma-dev liblzma5 libncurses-dev libncurses5-dev libncursesw5-dev libodbc2 libpcre2-dev libpng-dev libreadline-dev libsctp-dev libsctp1 libsqlite3-dev libssh-dev libssl-dev libtool libwxgtk-webview3.2-dev libwxgtk3.2-dev libxml2-utils libxslt-dev libyaml-dev llvm locales m4 make neovim net-tools openjdk-17-jdk openssh-client openssl parallel pkg-config python3-openssl sudo tk-dev tmux tmuxp unixodbc-dev unzip uuid-dev wget xorg-dev xsltproc xz-utils zlib1g-dev && rm -rf /var/lib/apt/lists/* && locale-gen en_US.UTF-8 && echo 'setup unprivileged user' && groupadd --gid ${USER_GID} coder && useradd --uid ${USER_UID} --gid coder --groups docker,wheel --shell $(which fish) --home-dir /home/coder --create-home coder && echo 'coder:coder' | chpasswd && echo 'permit persist :wheel as root' > /etc/doas.conf # buildkit |
ENV DO_VERSION=24.0.7 |
ENV DO_URL=https://download.docker.com/linux/static/stable/x86_64/docker-24.0.7.tgz |
ENV DC_VERSION=v2.23.3 |
ENV DC_URL=https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64 |
ENV BX_VERSION=v0.13.1 |
ENV BX_URL=https://github.com/docker/buildx/releases/download/v0.13.1/buildx-v0.13.1.linux-amd64 |
RUN |4 USER_UID=1000 USER_GID=1001 DOCKER_GID=999 WHEEL_GID=1000 /bin/sh -c curl -sS https://starship.rs/install.sh | sh -s -- --yes && curl -sS https://setup.atuin.sh | bash && mkdir /tmp/download && curl -L ${DO_URL} | tar -zx -C /tmp/download && chgrp --recursive docker /tmp/download && mv /tmp/download/docker/* /usr/local/bin && rm -rf /tmp/download && mkdir -p /usr/local/lib/docker/cli-plugins && curl -L ${DC_URL} -o /usr/local/lib/docker/cli-plugins/docker-compose && chmod 750 /usr/local/lib/docker/cli-plugins/docker-compose && curl -L ${BX_URL} -o /usr/local/lib/docker/cli-plugins/docker-buildx && chmod 750 /usr/local/lib/docker/cli-plugins/docker-buildx && chgrp --recursive docker /usr/local/lib/docker # buildkit |
USER coder |
WORKDIR /home/coder |
ENV LANGUAGE=en_US.UTF-8 |
ENV LANG= |
ENV LC_ALL=en_US.UTF-8 |
ENV HOME=/home/coder |
ENV LOCAL_BIN_HOME=/home/coder/.local/bin |
ENV LOCAL_SRC_HOME=/home/coder/.local/src |
ENV XDG_CONFIG_HOME=/home/coder/.config |
ENV XDG_DATA_HOME=/home/coder/.local/share |
ENV XDG_CACHE_HOME=/home/coder/.cache |
ENV STARSHIP_CONFIG=/home/coder/.config/starship/config.toml |
ENV PATH=/home/coder/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
RUN |4 USER_UID=1000 USER_GID=1001 DOCKER_GID=999 WHEEL_GID=1000 /bin/sh -c mkdir -p ${HOME}/.local/src && cd ${HOME}/.local/src && curl -L https://www.openssl.org/source/openssl-1.1.1m.tar.gz | tar -xz && cd openssl-1.1.1m && ./config --prefix=${HOME}/.local/lib/ssl --openssldir=${HOME}/.local/lib/ssl shared zlib && make && make install # buildkit |
RUN |4 USER_UID=1000 USER_GID=1001 DOCKER_GID=999 WHEEL_GID=1000 /bin/sh -c git clone https://github.com/elixir-lsp/elixir-ls.git ${LOCAL_SRC_HOME}/elixir-ls # buildkit |
RUN |4 USER_UID=1000 USER_GID=1001 DOCKER_GID=999 WHEEL_GID=1000 /bin/sh -c curl https://mise.jdx.dev/install.sh | sh && curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bash && git clone https://github.com/tmux-plugins/tpm.git ${XDG_CONFIG_HOME}/tmux/plugins/tpm # buildkit |
RUN |4 USER_UID=1000 USER_GID=1001 DOCKER_GID=999 WHEEL_GID=1000 /bin/sh -c fish -c true && echo 'starship init fish | source' >> ${XDG_CONFIG_HOME}/fish/config.fish && echo '{$LOCAL_BIN_HOME}/mise activate fish | source' >> ${XDG_CONFIG_HOME}/fish/config.fish && echo 'zoxide init fish | source' >> ${XDG_CONFIG_HOME}/fish/config.fish && echo 'atuin init fish | source' >> ${XDG_CONFIG_HOME}/fish/config.fish && echo 'alias cat="bat"' >> ${XDG_CONFIG_HOME}/fish/config.fish && echo 'alias l="eza --time-style=long-iso --color=auto --classify=always"' >> ${XDG_CONFIG_HOME}/fish/config.fish && echo 'alias ll="l -ahl"' >> ${XDG_CONFIG_HOME}/fish/config.fish && echo 'alias la="l -a"' >> ${XDG_CONFIG_HOME}/fish/config.fish # buildkit |
COPY ./patch/kickstart.nvim/updates.patch /tmp # buildkit |
COPY ./config/nvim/lua/custom/plugins/init.lua /tmp # buildkit |
RUN |4 USER_UID=1000 USER_GID=1001 DOCKER_GID=999 WHEEL_GID=1000 /bin/sh -c git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME}"/nvim && cd ${XDG_CONFIG_HOME}/nvim && git reset --hard c4363e4ad8aa3269a581d89b1e11403dd89df291 && git apply /tmp/updates.patch && cp /tmp/init.lua ${XDG_CONFIG_HOME}/nvim/lua/custom/plugins && nvim --headless "+Lazy! sync" +qa # buildkit |
RUN |4 USER_UID=1000 USER_GID=1001 DOCKER_GID=999 WHEEL_GID=1000 /bin/sh -c ${LOCAL_BIN_HOME}/mise plugins install --force --yes awscli bat bitwarden dagger elixir erlang eza fzf helm k3d k3sup k9s kubectl kubie lefthook poetry ripgrep rust starship terraform tilt tmux usql yarn zoxide # buildkit |
ARG GIT_USER_EMAIL |
ARG GIT_USER_NAME |
RUN |6 USER_UID=1000 USER_GID=1001 DOCKER_GID=999 WHEEL_GID=1000 GIT_USER_EMAIL=joao.dubas@gmail.com GIT_USER_NAME=Joao P Dubas /bin/sh -c git config --global user.email "${GIT_USER_EMAIL}" && git config --global user.name "${GIT_USER_NAME}" && git config --global gpg.ssh.allowedSignersFile "${XDG_CONFIG_HOME}/git/allowed_signers" && git config --global core.editor nvim && git config --global diff.tool nvimdiff && git config --global difftool.nvimdiff.layout "LOCAL,REMOTE" && git config --global merge.tool nvimdiff && git config --global mergetool.nvimdiff.layout "LOCAL,BASE,REMOTE / MERGED" && git config --global includeIf."hasconfig:remote.*.url:gitea:*/**".path ${XDG_CONFIG_HOME}/git/personal_gitea && git config --global includeIf."hasconfig:remote.*.url:github:joaodubas/**".path ${XDG_CONFIG_HOME}/git/personal_github && git config --global includeIf."gitdir:/opt/work/".path ${XDG_CONFIG_HOME}/git/work # buildkit |
COPY ./scripts/docker-entrypoint.sh /usr/local/bin/docker-entrypoint # buildkit |
COPY ./scripts/elixir-ls-setup.sh /usr/local/bin/elixir-ls-setup # buildkit |