init
This commit is contained in:
33
.devcontainer/devcontainer.json
Normal file
33
.devcontainer/devcontainer.json
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"name": "My Coder Test Environment",
|
||||||
|
"build": {
|
||||||
|
"dockerfile": "../Dockerfile",
|
||||||
|
"context": ".."
|
||||||
|
},
|
||||||
|
"remoteUser": "coder", // This should match the USERNAME arg in your Dockerfile
|
||||||
|
// "workspaceMount": "Source=./workspace,target=/home/coder/workspace,type=bind,consistency=cached",
|
||||||
|
"workspaceFolder": "/workspaces",
|
||||||
|
"customizations": {
|
||||||
|
"vscode": {
|
||||||
|
"settings": {
|
||||||
|
"terminal.integrated.defaultProfile.linux": "zsh",
|
||||||
|
"terminal.integrated.profiles.linux": {
|
||||||
|
"zsh": {
|
||||||
|
"path": "/usr/bin/zsh"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"extensions": [
|
||||||
|
"ms-azuretools.vscode-docker",
|
||||||
|
"golang.go", // Example: Add extensions relevant to your work
|
||||||
|
"rust-lang.rust-analyzer",
|
||||||
|
"esbenp.prettier-vscode",
|
||||||
|
"editorconfig.editorconfig"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"postCreateCommand": "/etc/profile.d/nvm.sh && nvm install --lts && nvm use --lts",
|
||||||
|
"containerEnv": {
|
||||||
|
"MY_CUSTOM_VAR": "some-value"
|
||||||
|
}
|
||||||
|
}
|
||||||
8
.gitconfig_template
Normal file
8
.gitconfig_template
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
[commit]
|
||||||
|
gpgsign = true
|
||||||
|
|
||||||
|
[gpg]
|
||||||
|
format = ssh
|
||||||
|
|
||||||
|
[url "ssh://git@ssh-gitea.olsen.cloud:2205/"]
|
||||||
|
insteadOf = "https://gitea.olsen.cloud/"
|
||||||
61
Dockerfile
Normal file
61
Dockerfile
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
FROM ubuntu:22.04
|
||||||
|
|
||||||
|
# --- Setup for NVM and other tools ---
|
||||||
|
|
||||||
|
# Update package lists and install basic dependencies
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
curl \
|
||||||
|
git \
|
||||||
|
nodejs \
|
||||||
|
npm \
|
||||||
|
build-essential \
|
||||||
|
zsh \
|
||||||
|
tmux \
|
||||||
|
wget \
|
||||||
|
unzip \
|
||||||
|
iputils-ping \
|
||||||
|
sudo \
|
||||||
|
procps \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Install NVM
|
||||||
|
# Using a specific NVM version is good practice. Check the latest stable version.
|
||||||
|
ENV NVM_DIR="/usr/local/nvm"
|
||||||
|
RUN mkdir -p ${NVM_DIR} && \
|
||||||
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash && \
|
||||||
|
# Ensure NVM paths are added to shell profiles for all users
|
||||||
|
echo 'export NVM_DIR="/usr/local/nvm"' >> /etc/profile.d/nvm.sh && \
|
||||||
|
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm' >> /etc/profile.d/nvm.sh && \
|
||||||
|
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion' >> /etc/profile.d/nvm.sh && \
|
||||||
|
chmod +x /etc/profile.d/nvm.sh
|
||||||
|
|
||||||
|
# Install some default Node.js version and global packages with NVM
|
||||||
|
# This will be available to all users.
|
||||||
|
# You might want to install `npm` itself, or specific global packages.
|
||||||
|
# Ensure NVM is sourced before using it.
|
||||||
|
RUN bashenv="$(mktemp)" && \
|
||||||
|
echo '#!/bin/bash' > "$bashenv" && \
|
||||||
|
echo '. /etc/profile.d/nvm.sh' >> "$bashenv" && \
|
||||||
|
echo 'nvm install 23' >> "$bashenv" && \
|
||||||
|
echo 'nvm use 23' >> "$bashenv" && \
|
||||||
|
echo 'corepack enable' >> "$bashenv" && \
|
||||||
|
chmod +x "$bashenv" && \
|
||||||
|
"$bashenv" && \
|
||||||
|
rm "$bashenv"
|
||||||
|
|
||||||
|
|
||||||
|
RUN groupadd --gid $USER_GID $USERNAME \
|
||||||
|
&& useradd -s /bin/bash --uid 1000 --gid 1000 -m coder \
|
||||||
|
&& apt-get update && apt-get install -y sudo \
|
||||||
|
&& echo coder ALL=\(ALL\) NOPASSWD:ALL > /etc/sudoers.d/coder \
|
||||||
|
&& chmod 0440 /etc/sudoers.d/coder \
|
||||||
|
&& chsh -s /usr/bin/zsh coder
|
||||||
|
|
||||||
|
# Ensure the /home/$USERNAME directory exists and has correct permissions
|
||||||
|
RUN mkdir -p /home/coder/.config && chown coder:coder /home/coder
|
||||||
|
USER coder
|
||||||
|
RUN git clone https://gitea.olsen.cloud/morten/nvim.git /home/coder/.config/nvim
|
||||||
|
|
||||||
|
COPY .gitconfig_template /home/coder/.gitconfig
|
||||||
|
RUN chown coder:coder /home/coder/.gitconfig
|
||||||
|
|
||||||
Reference in New Issue
Block a user