Skip to content

Commit

Permalink
add: .tool-versions
Browse files Browse the repository at this point in the history
  • Loading branch information
naa0yama committed Jul 27, 2024
1 parent da9f7c8 commit faa16a0
Show file tree
Hide file tree
Showing 3 changed files with 212 additions and 84 deletions.
11 changes: 11 additions & 0 deletions .tool-versions
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
assh 2.16.0
awscli 2.15.19
fzf 0.50.0
ghq 1.6.1
terraform 1.1.3
python 3.10.12
poetry 1.7.1
rust stable
starship 1.18.2
tmux 3.4
aws-sam-cli 1.115.0
116 changes: 49 additions & 67 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ RUN set -eux && \
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN set -eux && \
apt -y update && \
apt -y upgrade && \
apt-get -y update && \
apt-get -y upgrade && \
yes | unminimize && \
apt -y install --no-install-recommends \
apt-get -y install --no-install-recommends \
bash \
ca-certificates \
command-not-found \
Expand All @@ -47,8 +47,8 @@ RUN set -eux && \
wget && \
\
# Cleanup \
apt -y autoremove && \
apt -y clean && \
apt-get -y autoremove && \
apt-get -y clean && \
rm -rf /var/lib/apt/lists/*

# Create user
Expand All @@ -69,8 +69,8 @@ RUN set -eux && \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${VERSION_CODENAME}") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null && \
apt -y update && \
apt -y install --no-install-recommends \
apt-get -y update && \
apt-get -y install --no-install-recommends \
docker-ce \
docker-ce-cli \
containerd.io \
Expand All @@ -79,20 +79,20 @@ RUN set -eux && \
usermod -aG docker "${DEFAULT_USERNAME}" && \
\
# Cleanup \
apt -y autoremove && \
apt -y clean && \
apt-get -y autoremove && \
apt-get -y clean && \
rm -rf /var/lib/apt/lists/*

# Install fish-shell
RUN set -eux && \
apt-add-repository -y ppa:fish-shell/release-3 && \
apt -y update && \
apt -y install --no-install-recommends \
apt-get -y update && \
apt-get -y install --no-install-recommends \
fish && \
\
# Cleanup \
apt -y autoremove && \
apt -y clean && \
apt-get -y autoremove && \
apt-get -y clean && \
rm -rf /var/lib/apt/lists/*

USER ${DEFAULT_USERNAME}
Expand All @@ -110,21 +110,12 @@ RUN set -eux && \
FROM base as user

ARG ASDF_VERSION=v0.14.0 \
ASDF_PLUGIN_ASSH_VER=2.16.0 \
ASDF_PLUGIN_AWSCLI_VER=2.15.19 \
ASDF_PLUGIN_FZF_VER=0.50.0 \
ASDF_PLUGIN_GHQ_VER=1.6.1 \
ASDF_PLUGIN_POETRY_VER=1.7.1 \
ASDF_PLUGIN_PYTHON_VER=3.10.12 \
ASDF_PLUGIN_RUST_VER=stable \
ASDF_PLUGIN_SAM_CLI_VER=1.115.0 \
ASDF_PLUGIN_STARSHIP_VER=1.18.2 \
ASDF_PLUGIN_TERRAFORM_VER=1.1.3 \
ASDF_PLUGIN_TMUX_VER=3.4 \
\
DEBIAN_FRONTEND \
DEFAULT_USERNAME

COPY --chown=${DEFAULT_USERNAME} --chmod=644 .tool-versions ~/.tool-versions

# Install asdf
RUN set -eux && \
git clone https://github.com/asdf-vm/asdf.git ~/.asdf \
Expand All @@ -134,46 +125,41 @@ RUN set -eux && \
echo ". \"\$HOME/.asdf/asdf.sh\"" >> ~/.bashrc && \
echo ". \"\$HOME/.asdf/completions/asdf.bash\"" >> ~/.bashrc

# asdf update
RUN set -eux && \
source $HOME/.asdf/asdf.sh && \
asdf update

# asdf install plugin asdf-assh
RUN set -eux && \
source $HOME/.asdf/asdf.sh && \
asdf plugin-add assh && \
asdf install assh ${ASDF_PLUGIN_ASSH_VER} && \
asdf global assh ${ASDF_PLUGIN_ASSH_VER}
asdf plugin-add assh

# asdf install plugin awscli
RUN set -eux && \
source $HOME/.asdf/asdf.sh && \
asdf plugin-add awscli && \
asdf install awscli ${ASDF_PLUGIN_AWSCLI_VER} && \
asdf global awscli ${ASDF_PLUGIN_AWSCLI_VER}
asdf plugin-add awscli

# asdf install plugin fzf
RUN set -eux && \
source $HOME/.asdf/asdf.sh && \
asdf plugin-add fzf && \
asdf install fzf ${ASDF_PLUGIN_FZF_VER} && \
asdf global fzf ${ASDF_PLUGIN_FZF_VER}
asdf plugin-add fzf

# asdf install plugin ghq
RUN set -eux && \
source $HOME/.asdf/asdf.sh && \
asdf plugin-add ghq && \
asdf install ghq ${ASDF_PLUGIN_GHQ_VER} && \
asdf global ghq ${ASDF_PLUGIN_GHQ_VER}
asdf plugin-add ghq

# asdf install plugin terraform
RUN set -eux && \
source $HOME/.asdf/asdf.sh && \
asdf plugin-add terraform && \
asdf install terraform ${ASDF_PLUGIN_TERRAFORM_VER} && \
asdf global terraform ${ASDF_PLUGIN_TERRAFORM_VER}
asdf plugin-add terraform

# Dependencies Python
USER root
RUN set -eux && \
apt -y update && \
apt install -y --no-install-recommends \
apt-get -y update && \
apt-get install -y --no-install-recommends \
build-essential \
libbz2-dev \
libffi-dev \
Expand All @@ -189,24 +175,20 @@ RUN set -eux && \
zlib1g-dev && \
\
# Cleanup \
apt -y autoremove && \
apt -y clean && \
apt-get -y autoremove && \
apt-get -y clean && \
rm -rf /var/lib/apt/lists/*

# asdf install plugin python
USER ${DEFAULT_USERNAME}
RUN set -eux && \
source $HOME/.asdf/asdf.sh && \
asdf plugin-add python && \
asdf install python ${ASDF_PLUGIN_PYTHON_VER} && \
asdf global python ${ASDF_PLUGIN_PYTHON_VER}
asdf plugin-add python

# asdf install plugin poetry
RUN set -eux && \
source $HOME/.asdf/asdf.sh && \
asdf plugin-add poetry && \
asdf install poetry ${ASDF_PLUGIN_POETRY_VER} && \
asdf global poetry ${ASDF_PLUGIN_POETRY_VER}
asdf plugin-add poetry

# asdf install plugin rust
RUN set -eux && \
Expand All @@ -216,41 +198,41 @@ RUN set -eux && \
echo "" >> ~/.default-cargo-crates && \
\
source $HOME/.asdf/asdf.sh && \
asdf plugin-add rust && \
asdf install rust ${ASDF_PLUGIN_RUST_VER} && \
asdf global rust ${ASDF_PLUGIN_RUST_VER} && \
echo -e "#asdf rust command\nexport PATH=\$PATH:\$HOME/.asdf/installs/rust/stable/bin" >> ~/.bashrc && \
source ~/.bashrc && \
type -p dua && \
type -p rg && \
type -p topgrade
asdf plugin-add rust

# asdf install plugin starship
RUN set -eux && \
source $HOME/.asdf/asdf.sh && \
asdf plugin-add starship && \
asdf install starship ${ASDF_PLUGIN_STARSHIP_VER} && \
asdf global starship ${ASDF_PLUGIN_STARSHIP_VER}
asdf plugin-add starship

# asdf install plugin tmux
RUN set -eux && \
source $HOME/.asdf/asdf.sh && \
asdf plugin-add tmux && \
asdf install tmux ${ASDF_PLUGIN_TMUX_VER} && \
asdf global tmux ${ASDF_PLUGIN_TMUX_VER}
asdf plugin-add tmux

# asdf install plugin aws-sam-cli
RUN set -eux && \
source $HOME/.asdf/asdf.sh && \
asdf plugin-add aws-sam-cli && \
asdf install aws-sam-cli ${ASDF_PLUGIN_SAM_CLI_VER} && \
asdf global aws-sam-cli ${ASDF_PLUGIN_SAM_CLI_VER}
asdf plugin-add aws-sam-cli

# plugin install
RUN set -eux && \
source $HOME/.asdf/asdf.sh && \
asdf current && \
asdf install && \

# asdf check
RUN set -eux && \
asdf current && \
asdf list

# rust tools Dependencies
RUN set -eux && \
echo -e "#asdf rust command\nexport PATH=\$PATH:\$HOME/.asdf/installs/rust/stable/bin" >> ~/.bashrc && \
source ~/.bashrc && \
type -p dua && \
type -p rg && \
type -p topgrade

# WSL settings
## Ref: https://learn.microsoft.com/en-us/windows/wsl/use-custom-distro
USER root
Expand Down
Loading

0 comments on commit faa16a0

Please sign in to comment.