mirror of
https://github.com/cssgunc/compass.git
synced 2025-04-03 19:40:16 -04:00
82 lines
2.6 KiB
Docker
82 lines
2.6 KiB
Docker
FROM ubuntu:22.04
|
|
|
|
# Setup workspace directory
|
|
RUN mkdir /workspace
|
|
WORKDIR /workspace
|
|
|
|
# Install useful system utilities
|
|
ENV TZ=America/New_York
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
RUN apt-get update \
|
|
&& apt-get install --yes \
|
|
apt-transport-https \
|
|
ca-certificates \
|
|
curl \
|
|
debian-keyring \
|
|
debian-archive-keyring \
|
|
git \
|
|
gnupg \
|
|
locales \
|
|
postgresql-client \
|
|
software-properties-common \
|
|
sudo \
|
|
tzdata \
|
|
wget \
|
|
zsh \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Python 3.11
|
|
RUN add-apt-repository ppa:deadsnakes/ppa \
|
|
&& apt update \
|
|
&& apt install --yes \
|
|
python3.11 \
|
|
python3-pip \
|
|
libpq-dev \
|
|
python3.11-dev \
|
|
&& rm -rf /var/lib/apt/lists* \
|
|
&& unlink /usr/bin/python3 \
|
|
&& ln -s /usr/bin/python3.11 /usr/bin/python3
|
|
|
|
# Install Node.js 18 from https://github.com/nodesource
|
|
ENV NODE_MAJOR 18
|
|
RUN mkdir -p /etc/apt/keyrings \
|
|
&& curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \
|
|
&& echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list \
|
|
&& apt-get update \
|
|
&& apt-get install nodejs -y \
|
|
&& npm install -g npm@10.8.2 \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Use a non-root user per https://code.visualstudio.com/remote/advancedcontainers/add-nonroot-user
|
|
ARG USERNAME=vscode
|
|
ARG USER_UID=1000
|
|
ARG USER_GID=$USER_UID
|
|
|
|
# Add non-root user and add to sudoers
|
|
RUN groupadd --gid $USER_GID $USERNAME \
|
|
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME -s /usr/bin/zsh \
|
|
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
|
|
&& chmod 0440 /etc/sudoers.d/$USERNAME
|
|
|
|
# Set code to default git commit editor
|
|
RUN git config --system core.editor "code --wait"
|
|
# Set Safe Directory
|
|
RUN git config --system safe.directory '/workspace'
|
|
|
|
# Configure zsh
|
|
USER $USERNAME
|
|
ENV HOME /home/$USERNAME
|
|
|
|
# Add zsh theme with niceties
|
|
RUN curl https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh | bash - \
|
|
&& sed -i 's/robbyrussell/kennethreitz/g' ~/.zshrc \
|
|
&& echo 'source <(ng completion script)' >>~/.zshrc \
|
|
&& echo 'export PATH=$PATH:$HOME/.local/bin' >>~/.zshrc
|
|
|
|
# Set Locale for Functional Autocompletion in zsh
|
|
RUN sudo locale-gen en_US.UTF-8
|
|
|
|
# Install Backend Dependencies
|
|
COPY backend/requirements.txt /workspace/backend/requirements.txt
|
|
WORKDIR /workspace/backend
|
|
RUN python3 -m pip install -r requirements.txt |