manual ln

This commit is contained in:
Tomas Mirchev 2024-09-14 18:26:24 +02:00
parent a145ef8d59
commit ea739e5509
4 changed files with 82 additions and 39 deletions

View File

@ -8,17 +8,31 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
vim \
tmux \
curl \
unzip \
git \
python3 \
build-essential \
libssl-dev \
sudo \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN useradd --system --create-home --shell=/bin/zsh --groups=sudo dev
RUN mkdir /workspace && chown -R dev:dev /workspace
USER dev
ARG USERNAME=dev
ARG USER_UID=1000
ARG USER_GID=$USER_UID
RUN groupadd --gid $USER_GID $USERNAME \
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
&& chmod 0440 /etc/sudoers.d/$USERNAME
RUN mkdir /workspace && chown -R $USERNAME:$USERNAME /workspace
USER $USERNAME
RUN git clone https://gitea.tomastm.com/tomas.mirchev/dotfiles.git ~/.dotfiles
RUN ~/.dotfiles/install.sh
SHELL ["/bin/zsh", "-c"]
WORKDIR /workspace
ENV w=/workspace

View File

@ -1,41 +1,38 @@
FROM debian:bookworm
ARG VARIANT="bookworm"
FROM debian:${VARIANT}
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get install -y --no-install-recommends \
zsh \
vim \
tmux \
curl \
git \
&& apt-get clean \
&& apt-get -y install --no-install-recommends \
ca-certificates \
zsh \
vim \
tmux \
curl \
unzip \
git \
python3 \
build-essential \
libssl-dev \
openssh-client \
sudo \
&& apt-get autoremove -y \
&& apt-get clean -y \
&& rm -rf /var/lib/apt/lists/*
RUN useradd -ms /bin/zsh dev
RUN groupadd -g 1001 dev
RUN useradd -u 1001 -g 1001 -m -s /bin/zsh dev
RUN echo "dev ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
RUN mkdir /workspace
WORKDIR /workspace
VOLUME ["/workspace"]
ENV w=/workspace
RUN chown -R dev:dev /workspace
COPY create-zshenv.sh /usr/local/bin/create-zshenv.sh
RUN chmod +x /usr/local/bin/create-zshenv.sh
RUN /usr/local/bin/create-zshenv.sh
USER dev
RUN mkdir /home/dev/.nvm
ENV NVM_DIR="/home/dev/.nvm"
RUN curl https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash \
&& . $NVM_DIR/nvm.sh \
&& nvm install 18 \
&& nvm install 20 \
&& nvm install 22 \
&& nvm install --lts \
&& nvm aliast default lts/* \
&& nvm use default
RUN corepack enable npm
RUN corepack enable yarn
RUN corepack enable pnpm
RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
ADD --chown=dev:dev tmp /home/dev
ENV PATH="/home/dev/bin:$PATH"
SHELL ["/bin/zsh", "-c"]
WORKDIR /usr/src/app
CMD ["zsh"]

View File

@ -1,4 +1,3 @@
docker build -t my-dev-container .
docker run -it --rm -v ~/apps/gateway:/usr/src/app -w /usr/src/app my-dev-container

View File

@ -0,0 +1,33 @@
#!/bin/sh
# Create the file as root
cat << 'EOF' > /home/dev/.zshenv
# ~/.zshenv
export HOME="/home/dev"
export XDG_CONFIG_HOME="$HOME/.config"
export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
export TMUX_CONFIG_HOME="$XDG_CONFIG_HOME/tmux"
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
EOF
# Change ownership to dev user
chown dev:dev /home/dev/.zshenv
su - dev -c /bin/bash << 'EOF'
export NVM_DIR="$HOME/.nvm"
mkdir -p "$NVM_DIR"
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
. "$NVM_DIR/nvm.sh"
nvm install --lts
nvm install 18
nvm install 20
nvm install 22
corepack prepare npm --activate
corepack prepare yarn --activate
corepack prepare pnpm --activate
corepack disable
EOF