swift-nio.dockerfile 731 B

12345678910111213141516171819202122232425262728293031323334
  1. # ================================
  2. # Build image
  3. # ================================
  4. FROM swift:5.5 as build
  5. WORKDIR /build
  6. # Copy entire repo into container
  7. COPY ./app .
  8. # Compile with optimizations
  9. RUN swift build \
  10. -c release \
  11. -Xswiftc -enforce-exclusivity=unchecked
  12. # ================================
  13. # Run image
  14. # ================================
  15. FROM swift:5.5-slim
  16. WORKDIR /run
  17. # Install Swift dependencies
  18. RUN apt-get -qq update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
  19. libatomic1 \
  20. && rm -r /var/lib/apt/lists/*
  21. # Copy build artifacts
  22. COPY --from=build /build/.build/release /run
  23. # Copy Swift runtime libraries
  24. COPY --from=build /usr/lib/swift/ /usr/lib/swift/
  25. EXPOSE 8080
  26. ENTRYPOINT ["./app"]