feat: add Containerfile with base/dev/ci build targets
This commit is contained in:
@@ -0,0 +1,59 @@
|
|||||||
|
# Roc compiler base image
|
||||||
|
# Provides just the Roc compiler binary and WASI runtime library.
|
||||||
|
|
||||||
|
ARG ROC_VERSION=0.0.0-alpha2
|
||||||
|
|
||||||
|
FROM debian:bookworm-slim AS curl-stage
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates curl && rm -rf /var/lib/apt/lists/*
|
||||||
|
ARG ROC_VERSION
|
||||||
|
ARG TARGETARCH
|
||||||
|
COPY scripts/download-roc.sh /tmp/download-roc.sh
|
||||||
|
RUN /tmp/download-roc.sh "$ROC_VERSION" "$TARGETARCH"
|
||||||
|
|
||||||
|
FROM debian:bookworm-slim AS base
|
||||||
|
ARG ROC_VERSION
|
||||||
|
ARG TARGETARCH
|
||||||
|
LABEL org.opencontainers.image.title="roc-tools-base"
|
||||||
|
LABEL org.opencontainers.image.description="Roc compiler base image"
|
||||||
|
LABEL org.opencontainers.image.version="${ROC_VERSION}"
|
||||||
|
LABEL org.opencontainers.image.source="https://git.roo.lol/jbrechtel/roc-lang-tools"
|
||||||
|
|
||||||
|
RUN groupadd --gid 1000 roc && useradd --uid 1000 --gid roc --shell /bin/sh --create-home roc
|
||||||
|
|
||||||
|
COPY --from=curl-stage /opt/roc /opt/roc
|
||||||
|
ENV PATH="/opt/roc/bin:${PATH}"
|
||||||
|
|
||||||
|
USER roc
|
||||||
|
WORKDIR /home/roc
|
||||||
|
ENTRYPOINT ["roc"]
|
||||||
|
CMD ["--help"]
|
||||||
|
|
||||||
|
FROM base AS dev
|
||||||
|
LABEL org.opencontainers.image.title="roc-tools-dev"
|
||||||
|
LABEL org.opencontainers.image.description="Roc development environment with LSP and dev tools"
|
||||||
|
LABEL org.opencontainers.image.version="${ROC_VERSION}"
|
||||||
|
|
||||||
|
USER root
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
git \
|
||||||
|
curl \
|
||||||
|
bash \
|
||||||
|
ca-certificates \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
USER roc
|
||||||
|
ENTRYPOINT ["bash"]
|
||||||
|
|
||||||
|
FROM base AS ci
|
||||||
|
LABEL org.opencontainers.image.title="roc-tools-ci"
|
||||||
|
LABEL org.opencontainers.image.description="Roc CI/CD runner image"
|
||||||
|
LABEL org.opencontainers.image.version="${ROC_VERSION}"
|
||||||
|
|
||||||
|
USER root
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
ca-certificates \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
USER roc
|
||||||
|
ENTRYPOINT ["roc"]
|
||||||
|
CMD ["--help"]
|
||||||
Reference in New Issue
Block a user