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