manual ln
This commit is contained in:
parent
a145ef8d59
commit
ea739e5509
@ -8,17 +8,31 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
|||||||
vim \
|
vim \
|
||||||
tmux \
|
tmux \
|
||||||
curl \
|
curl \
|
||||||
|
unzip \
|
||||||
git \
|
git \
|
||||||
|
python3 \
|
||||||
|
build-essential \
|
||||||
|
libssl-dev \
|
||||||
|
sudo \
|
||||||
&& apt-get clean \
|
&& apt-get clean \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
RUN useradd --system --create-home --shell=/bin/zsh --groups=sudo dev
|
ARG USERNAME=dev
|
||||||
RUN mkdir /workspace && chown -R dev:dev /workspace
|
ARG USER_UID=1000
|
||||||
USER dev
|
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 git clone https://gitea.tomastm.com/tomas.mirchev/dotfiles.git ~/.dotfiles
|
||||||
RUN ~/.dotfiles/install.sh
|
RUN ~/.dotfiles/install.sh
|
||||||
|
|
||||||
|
SHELL ["/bin/zsh", "-c"]
|
||||||
WORKDIR /workspace
|
WORKDIR /workspace
|
||||||
ENV w=/workspace
|
ENV w=/workspace
|
||||||
|
|
||||||
|
|||||||
@ -1,41 +1,38 @@
|
|||||||
FROM debian:bookworm
|
ARG VARIANT="bookworm"
|
||||||
|
FROM debian:${VARIANT}
|
||||||
|
|
||||||
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
||||||
&& apt-get install -y --no-install-recommends \
|
&& apt-get -y install --no-install-recommends \
|
||||||
zsh \
|
ca-certificates \
|
||||||
vim \
|
zsh \
|
||||||
tmux \
|
vim \
|
||||||
curl \
|
tmux \
|
||||||
git \
|
curl \
|
||||||
&& apt-get clean \
|
unzip \
|
||||||
|
git \
|
||||||
|
python3 \
|
||||||
|
build-essential \
|
||||||
|
libssl-dev \
|
||||||
|
openssh-client \
|
||||||
|
sudo \
|
||||||
|
&& apt-get autoremove -y \
|
||||||
|
&& apt-get clean -y \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& 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
|
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"]
|
CMD ["zsh"]
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
docker build -t my-dev-container .
|
docker build -t my-dev-container .
|
||||||
|
|
||||||
docker run -it --rm -v ~/apps/gateway:/usr/src/app -w /usr/src/app my-dev-container
|
docker run -it --rm -v ~/apps/gateway:/usr/src/app -w /usr/src/app my-dev-container
|
||||||
|
|
||||||
|
|||||||
33
web-stack/create-zshenv.sh
Normal file
33
web-stack/create-zshenv.sh
Normal 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
|
||||||
Loading…
Reference in New Issue
Block a user