33 lines
975 B
Docker
33 lines
975 B
Docker
FROM swift:6.0-noble
|
|
|
|
# Make sure all system packages are up to date, and install only essential packages.
|
|
RUN export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true \
|
|
&& apt-get -q update \
|
|
&& apt-get -q dist-upgrade -y \
|
|
&& apt-get -q install -y \
|
|
libjemalloc2 \
|
|
ca-certificates \
|
|
tzdata \
|
|
# If your app or its dependencies import FoundationNetworking, also install `libcurl4`.
|
|
libcurl4 \
|
|
# If your app or its dependencies import FoundationXML, also install `libxml2`.
|
|
# libxml2 \
|
|
sqlite3 \
|
|
&& rm -r /var/lib/apt/lists/*
|
|
|
|
# Set up a build area
|
|
WORKDIR /app
|
|
|
|
# First just resolve dependencies.
|
|
# This creates a cached layer that can be reused
|
|
# as long as your Package.swift/Package.resolved
|
|
# files do not change.
|
|
COPY ./Package.* ./
|
|
RUN swift package resolve \
|
|
$([ -f ./Package.resolved ] && echo "--force-resolved-versions" || true)
|
|
|
|
# Copy entire repo into container
|
|
COPY . .
|
|
|
|
CMD ["swift", "test"]
|