summaryrefslogtreecommitdiff
path: root/fedora
diff options
context:
space:
mode:
Diffstat (limited to 'fedora')
-rw-r--r--fedora/Dockerfile106
1 files changed, 106 insertions, 0 deletions
diff --git a/fedora/Dockerfile b/fedora/Dockerfile
new file mode 100644
index 0000000..0a08f75
--- /dev/null
+++ b/fedora/Dockerfile
@@ -0,0 +1,106 @@
+FROM registry.fedoraproject.org/fedora-toolbox:latest
+
+ARG NAME=toolbox
+
+LABEL name="$NAME" \
+ summary="Fedora toolbox container" \
+ maintainer="TheSiahxyz"
+
+ENV EDITOR=nvim
+
+ENV NODE_VERSION=21.7.1
+
+ENV BASE_USER=si
+
+ENV PASSWORD=password
+
+ENV HOME=/home/$BASE_USER
+
+RUN dnf update && dnf -y upgrade && dnf -y install sudo
+
+RUN useradd -m -G wheel $BASE_USER
+
+RUN echo "$BASE_USER:$PASSWORD" | chpasswd
+
+RUN echo '%wheel ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
+
+USER $BASE_USER
+
+WORKDIR /home/$BASE_USER
+
+ENV PATH=$PATH:$HOME/go/bin:$HOME/.local/share/nvim/mason/bin:$HOME/.cargo/bin
+
+RUN sudo dnf -y upgrade \
+ && sudo dnf -y install \
+ tmux \
+ ruby \
+ php-common \
+ php-cli \
+ luarocks \
+ curl \
+ python3 \
+ python3-pip \
+ java-latest-openjdk-devel \
+ ripgrep \
+ fd-find \
+ git \
+ neovim \
+ golang \
+ cargo \
+ composer \
+ julia-devel \
+ lua5.1 \
+ stow \
+ && sudo dnf clean all
+
+RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
+
+ENV NVM_DIR="$HOME/.nvm"
+
+RUN . $HOME/.nvm/nvm.sh \
+ && nvm install $NODE_VERSION \
+ && nvm alias default $NODE_VERSON \
+ && nvm use default \
+ && . $HOME/.nvm/bash_completion
+
+ENV NODE_PATH=$NVM_DIR/v$NODE_VERSION/lib/node_modules
+
+RUN pip3 install pynvim
+
+RUN mkdir $HOME/.npm-global && npm config set prefix '~/.npm-global' \
+ && echo "export PATH=$HOME/.npm-global/bin:$PATH" >> $HOME/.profile && source $HOME/.profile
+
+RUN npm install -g neovim
+
+RUN go install github.com/jesseduffield/lazygit@latest
+
+RUN cargo install tree-sitter-cli
+
+RUN git clone https://github.com/TheSiahxyz/.dotfiles.git
+
+RUN npm install -g eslint_d
+
+RUN nvim --headless "+Lazy! sync" +qa
+
+RUN nvim --headless "+MasonInstall codelldb delve gopls clangd lua-language-server pyright rust-analyzer typescript-language-server eslint_d flake8 black gofumpt prettier stylua clang-format" +qa
+
+RUN sudo cp -f /usr/bin/lua-5.1 /usr/bin/lua
+
+RUN sudo rm -rf /usr/lib64/nvim/parser
+
+RUN sudo luarocks install jsregexp
+
+COPY ./.tmux.conf /home/$BASE_USER/.tmux.conf
+
+RUN sudo chown si:si /home/$BASE_USER/.tmux.conf
+
+RUN wget -P ~/.local/share/fonts https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/FiraCode.zip \
+ && cd ~/.local/share/fonts \
+ && unzip FiraCode.zip \
+ && rm FiraCode.zip \
+ && fc-cache -fv
+
+RUN cargo install starship --locked \
+ && echo 'eval "$(starship init bash)"' >> ~/.bashrc
+
+CMD tmux