prole/tests/shellspec/.vendor/shellspec-0.28.1/.dockerhub/Dockerfile
chrisfu 909e92109e Refactor shell layout; add shellspec + authority
- Introduce lib/shell helpers and keep etc/* scripts thin via compatibility shims

- Move Kerberos validation to scripts/validation/check_kerberos.sh and update callers

- Add deterministic shellspec unit tests under tests/shellspec/ and wire Maven to run them

- Add minimal Spring Boot authority module with startup + /health endpoint and Maven wiring

- Document the new layout in docs/layout.md

Co-authored-by: Junie <junie@jetbrains.com>
2026-03-13 09:19:56 -07:00

83 lines
3.5 KiB
Docker

# Build two images with Automated Builds using Docker Hub hooks.
# See https://github.com/shellspec/shellspec/tree/master/.dockerhub/hooks
# ======================================================================
# source code
# ======================================================================
FROM scratch as source
COPY shellspec LICENSE /opt/shellspec/
COPY lib /opt/shellspec/lib
COPY libexec /opt/shellspec/libexec
# ======================================================================
# Kcov builder
# ======================================================================
FROM alpine:3.12 as builder
ENV KCOV=v38 CXXFLAGS=-D__ptrace_request=int
WORKDIR /usr/local/src
RUN apk add --no-cache build-base cmake ninja python3 \
binutils-dev curl-dev elfutils-dev
RUN wget -q https://github.com/SimonKagstrom/kcov/archive/$KCOV.tar.gz
RUN tar xzf $KCOV.tar.gz -C ./ --strip-components 1
RUN mkdir build && cd build \
&& cmake -G Ninja .. && cmake --build . --target install
# ======================================================================
# Kcov image
# TAG: shellspec:kcov, shellspec:[VERSION]-kcov
# ======================================================================
FROM alpine:3.12 as kcov
RUN apk add --no-cache bash binutils-dev curl-dev elfutils-libelf
COPY --from=builder /usr/local/bin/kcov* /usr/local/bin/
COPY --from=builder /usr/local/share/doc/kcov /usr/local/share/doc/kcov
COPY --from=source /opt/shellspec /opt/shellspec
COPY .dockerhub/shellspec-docker-entrypoint.sh /shellspec-docker
ENV PATH /opt/shellspec/:$PATH
WORKDIR /src
ENTRYPOINT [ "shellspec" ]
ARG CREATED
ARG AUTHORS
ARG VERSION
ARG REVISION
ARG REFNAME
LABEL org.opencontainers.image.created=$CREATED \
org.opencontainers.image.authors=$AUTHORS \
org.opencontainers.image.url="https://shellspec.info/" \
org.opencontainers.image.documentation="https://github.com/shellspec/shellspec" \
org.opencontainers.image.source="https://github.com/shellspec/shellspec.git" \
org.opencontainers.image.version=$VERSION \
org.opencontainers.image.revision=$REVISION \
org.opencontainers.image.vendor="shellspec" \
org.opencontainers.image.licenses="MIT" \
org.opencontainers.image.ref.name=$REFNAME \
org.opencontainers.image.title="shellspec+kcov" \
org.opencontainers.image.description="Shellspec (Alpine based with Kcov)"
# ======================================================================
# Standard image (default)
# TAG: shellspec:latest, shellspec:[VERSION]
# ======================================================================
FROM alpine:3.12 as standard
COPY --from=source /opt/shellspec /opt/shellspec
COPY .dockerhub/shellspec-docker-entrypoint.sh /shellspec-docker
ENV PATH /opt/shellspec/:$PATH
WORKDIR /src
ENTRYPOINT [ "shellspec" ]
ARG CREATED
ARG AUTHORS
ARG VERSION
ARG REVISION
ARG REFNAME
LABEL org.opencontainers.image.created=$CREATED \
org.opencontainers.image.authors=$AUTHORS \
org.opencontainers.image.url="https://shellspec.info/" \
org.opencontainers.image.documentation="https://github.com/shellspec/shellspec" \
org.opencontainers.image.source="https://github.com/shellspec/shellspec.git" \
org.opencontainers.image.version=$VERSION \
org.opencontainers.image.revision=$REVISION \
org.opencontainers.image.vendor="shellspec" \
org.opencontainers.image.licenses="MIT" \
org.opencontainers.image.ref.name=$REFNAME \
org.opencontainers.image.title="shellspec" \
org.opencontainers.image.description="Shellspec (Alpine based)"