diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..8326c91 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,9 @@ +FROM ubuntu:22.04 + +WORKDIR /home/ + +COPY . . + +RUN bash ./setup.sh + +ENV PATH="/root/.cargo/bin:$PATH" \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..5e62327 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,15 @@ +{ + "name": "Clusters", + "extensions": [ + "cschleiden.vscode-github-actions", + "rust-lang.rust-analyzer", + "serayuzgur.crates", + "vadimcn.vscode-lldb" + ], + "dockerFile": "Dockerfile", + "settings": { + "editor.formatOnSave": true, + "terminal.integrated.defaultProfile.linux": "zsh" + }, + "postAttachCommand": "exec zsh" +} \ No newline at end of file diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh new file mode 100644 index 0000000..0f30705 --- /dev/null +++ b/.devcontainer/setup.sh @@ -0,0 +1,33 @@ +## update and install some things we should probably have +apt-get update +apt-get install -y \ + curl \ + git \ + gnupg2 \ + jq \ + sudo \ + zsh \ + vim \ + build-essential \ + libssl-dev \ + openssl + +## update and install 2nd level of packages +apt-get install -y pkg-config + +## Install rustup and common components +curl https://sh.rustup.rs -sSf | sh -s -- -y +export PATH=/root/.cargo/bin:$PATH +rustup install stable +rustup component add rustfmt +rustup component add clippy + +cargo install cargo-expand +cargo install cargo-edit + +## setup and install oh-my-zsh +sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" +cp -R /root/.oh-my-zsh /home/$USERNAME +cp /root/.zshrc /home/$USERNAME +sed -i -e "s/\/root\/.oh-my-zsh/\/home\/$USERNAME\/.oh-my-zsh/g" /home/$USERNAME/.zshrc +chown -R $USER_UID:$USER_GID /home/$USERNAME/.oh-my-zsh /home/$USERNAME/.zshrc \ No newline at end of file