FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:1-20-bullseye

# Install go
RUN curl -O https://dl.google.com/go/go1.22.1.linux-amd64.tar.gz \
    && tar -xvf go1.22.1.linux-amd64.tar.gz \
    && mv go /usr/local \
    && rm go1.22.1.linux-amd64.tar.gz

# Add go to PATH
ENV PATH="${PATH}:/usr/local/go/bin"

# Add user go folder to PATH
ENV PATH="${PATH}:/home/node/go/bin"

# Install python
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
    && apt-get -y install --no-install-recommends python3 python3-pip python3-venv

# Create a virtual environment
RUN python3 -m venv /home/node/.venv

# Add the virtual environment to PATH
ENV PATH="${PATH}:/home/node/.venv/bin"

# set permissions for the node user
RUN chown -R node:node /home/node/.venv

# source the virtual environment
RUN echo "source /home/node/.venv/bin/activate" >> /home/node/.bashrc

# Install protoc compiler
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
    && apt-get -y install --no-install-recommends protobuf-compiler