FROM ubuntu:22.04

RUN apt update && \
      apt install -y --no-install-recommends --no-install-suggests \
      netcat-traditional ca-certificates curl gnupg git podman fuse-overlayfs iproute2

# Node
ARG NODE_MAJOR=20
RUN 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" | tee /etc/apt/sources.list.d/nodesource.list && \
      apt update && apt install -y nodejs

# kubectl
RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl && \
      chmod +x ./kubectl && \
      mv ./kubectl /usr/bin/kubectl

# laconic-so
RUN curl -LO https://git.vdb.to/cerc-io/stack-orchestrator/releases/download/latest/laconic-so && \
      chmod +x ./laconic-so && \
      mv ./laconic-so /usr/bin/laconic-so

# laconic-registry-cli
RUN npm config set @cerc-io:registry https://git.vdb.to/api/packages/cerc-io/npm/ && \
      npm install -g @cerc-io/laconic-registry-cli && \
      npm install -g yarn

# symlink podman to docker
RUN ln -s $(which podman) $(dirname `which podman`)/docker

RUN mkdir -p /srv/containers/podman && \
      mkdir -p /srv/containers/logs

COPY storage.conf /etc/containers

RUN mkdir -p /app

COPY . /app/
WORKDIR /app/
RUN rm -rf node_modules && yarn && yarn clean && yarn build:release

COPY run.sh .
CMD ["./run.sh"]
