FROM docker.io/swift:6.2-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 . . ENV SWIFT_BACKTRACE=enable=no ENV LOG_LEVEL=debug CMD ["swift", "test"]