init
This commit is contained in:
commit
a681b3789b
27
.vscode/tasks.json
vendored
Normal file
27
.vscode/tasks.json
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
{
|
||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||
// for the documentation about the tasks.json format
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Build and Push Docker Image",
|
||||
"type": "shell",
|
||||
"command": "docker build . -t registry.lehouerou.net/godev:latest && docker push registry.lehouerou.net/godev:latest",
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Build and Push Docker Image No Cache",
|
||||
"type": "shell",
|
||||
"command": "docker build . -t registry.lehouerou.net/godev:latest --no-cache && docker push registry.lehouerou.net/godev:latest",
|
||||
"group": {
|
||||
"kind": "build"
|
||||
},
|
||||
"problemMatcher": []
|
||||
}
|
||||
|
||||
]
|
||||
}
|
100
Dockerfile
Normal file
100
Dockerfile
Normal file
@ -0,0 +1,100 @@
|
||||
FROM ubuntu:latest
|
||||
|
||||
ARG APT_MIRROR=re
|
||||
# Set the APT mirror to use for downloading packages
|
||||
RUN sed --in-place --regexp-extended "s/(\/\/)(archive\.ubuntu)/\1$APT_MIRROR.\2/" /etc/apt/sources.list
|
||||
|
||||
# Update package definitions & install basic packages
|
||||
RUN apt-get update && apt-get install -y wget git curl software-properties-common
|
||||
|
||||
# Install zsh
|
||||
RUN apt-get install -y zsh
|
||||
|
||||
# Add user
|
||||
WORKDIR /root
|
||||
|
||||
# Install starship
|
||||
RUN curl -sS https://starship.rs/install.sh | sh -s -- --yes
|
||||
|
||||
# Install eza
|
||||
RUN apt-get install -y gpg && \
|
||||
mkdir -p /etc/apt/keyrings && \
|
||||
wget -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | gpg --dearmor -o /etc/apt/keyrings/gierens.gpg && \
|
||||
echo "deb [signed-by=/etc/apt/keyrings/gierens.gpg] http://deb.gierens.de stable main" | tee /etc/apt/sources.list.d/gierens.list && \
|
||||
chmod 644 /etc/apt/keyrings/gierens.gpg /etc/apt/sources.list.d/gierens.list && \
|
||||
apt update && \
|
||||
apt install -y eza
|
||||
|
||||
# Install fzf
|
||||
RUN git clone --depth 1 https://github.com/junegunn/fzf.git /root/.fzf && \
|
||||
/root/.fzf/install
|
||||
|
||||
# Install zoxide
|
||||
RUN curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bash
|
||||
|
||||
# Install zsh-autosuggestions plugin
|
||||
RUN mkdir -p /root/.zsh && \
|
||||
git clone https://github.com/zsh-users/zsh-autosuggestions /root/.zsh/zsh-autosuggestions
|
||||
|
||||
# Install neovim binaries
|
||||
RUN apt-get install -y build-essential unzip ripgrep && \
|
||||
curl -LO https://github.com/neovim/neovim/releases/download/nightly/nvim-linux64.tar.gz && \
|
||||
rm -rf /opt/nvim && \
|
||||
tar -C /opt -xzf nvim-linux64.tar.gz && \
|
||||
rm nvim-linux64.tar.gz
|
||||
|
||||
# Golang
|
||||
RUN add-apt-repository ppa:longsleep/golang-backports && \
|
||||
apt update && \
|
||||
apt install -y golang-go
|
||||
|
||||
# Go tools
|
||||
RUN go install github.com/pressly/goose/v3/cmd/goose@latest
|
||||
RUN go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest
|
||||
|
||||
# Nodejs
|
||||
RUN curl -fsSL https://deb.nodesource.com/setup_21.x | bash - && \
|
||||
apt-get install -y nodejs
|
||||
|
||||
RUN LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*') && \
|
||||
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz" && \
|
||||
tar xf lazygit.tar.gz lazygit && \
|
||||
install lazygit /usr/local/bin && \
|
||||
rm lazygit.tar.gz
|
||||
|
||||
RUN apt-get install -y postgresql-client
|
||||
|
||||
RUN apt-get install -y tmux xclip
|
||||
RUN git clone https://github.com/tmux-plugins/tpm /root/.tmux/plugins/tpm
|
||||
|
||||
RUN apt-get install -y python3 python3-pip
|
||||
|
||||
RUN curl -sS https://downloads.1password.com/linux/keys/1password.asc | \
|
||||
gpg --dearmor --output /usr/share/keyrings/1password-archive-keyring.gpg && \
|
||||
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/1password-archive-keyring.gpg] https://downloads.1password.com/linux/debian/$(dpkg --print-architecture) stable main" | \
|
||||
tee /etc/apt/sources.list.d/1password.list && \
|
||||
mkdir -p /etc/debsig/policies/AC2D62742012EA22/ && \
|
||||
curl -sS https://downloads.1password.com/linux/debian/debsig/1password.pol | \
|
||||
tee /etc/debsig/policies/AC2D62742012EA22/1password.pol && \
|
||||
mkdir -p /usr/share/debsig/keyrings/AC2D62742012EA22 && \
|
||||
curl -sS https://downloads.1password.com/linux/keys/1password.asc | \
|
||||
gpg --dearmor --output /usr/share/debsig/keyrings/AC2D62742012EA22/debsig.gpg && \
|
||||
apt update && apt install 1password-cli
|
||||
|
||||
RUN apt-get install -y locales && \
|
||||
sed -i '/fr_FR.UTF-8/s/^# //g' /etc/locale.gen && \
|
||||
locale-gen
|
||||
ENV LANG fr_FR.UTF-8
|
||||
ENV LANGUAGE fr_FR:fr
|
||||
ENV LC_ALL fr_FR.UTF-8
|
||||
|
||||
ENV TERM=xterm-256color
|
||||
|
||||
ENV CACHEBUST=7
|
||||
# Copy config files
|
||||
RUN echo ${CACHEBUST} && curl -Lks https://git.lehouerou.net/laurent/dotfiles/raw/branch/master/install.sh | /bin/bash
|
||||
|
||||
VOLUME ["/root/.local/share/nvim", "/root/.cache/nvim", "/root/.local/state/nvim"]
|
||||
|
||||
|
||||
ENTRYPOINT [ "/bin/zsh", "-c", "cd ./dev && exec /bin/zsh -l" ]
|
Loading…
Reference in New Issue
Block a user