diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 0039ff2..0000000 --- a/Dockerfile +++ /dev/null @@ -1,65 +0,0 @@ -# ================================ -# Build image -# ================================ -FROM swift:5.5-focal as build - -# Install OS updates and, if needed, sqlite3 -RUN export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true \ - && apt-get -q update \ - && apt-get -q dist-upgrade -y \ - && rm -rf /var/lib/apt/lists/* - -# Set up a build area -WORKDIR /build - -# 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 - -# Copy entire repo into container -COPY . . - -# Build everything, with optimizations -RUN swift build -c release - -# Switch to the staging area -WORKDIR /staging - -# Copy main executable to staging area -RUN cp "$(swift build --package-path /build -c release --show-bin-path)/Run" ./ - -# Copy any resouces from the public directory and views directory if the directories exist -# Ensure that by default, neither the directory nor any of its contents are writable. -RUN [ -d /build/Public ] && { mv /build/Public ./Public && chmod -R a-w ./Public; } || true -RUN [ -d /build/Resources ] && { mv /build/Resources ./Resources && chmod -R a-w ./Resources; } || true - -# ================================ -# Run image -# ================================ -FROM swift:5.5-focal-slim - -# Make sure all system packages are up to date. -RUN export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true && \ - apt-get -q update && apt-get -q dist-upgrade -y && rm -r /var/lib/apt/lists/* - -# Create a vapor user and group with /app as its home directory -RUN useradd --user-group --create-home --system --skel /dev/null --home-dir /app vapor - -# Switch to the new home directory -WORKDIR /app - -# Copy built executable and any staged resources from builder -COPY --from=build --chown=vapor:vapor /staging /app - -# Ensure all further commands run as the vapor user -USER vapor:vapor - -# Let Docker bind to port 8080 -EXPOSE 8080 - -# Start the Vapor service when the image is run, default to listening on 8080 in production environment -ENTRYPOINT ["./Run"] -CMD ["serve", "--env", "production", "--hostname", "0.0.0.0", "--port", "8080"] diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index afbc765..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,30 +0,0 @@ -# Docker Compose file for Vapor -# -# Install Docker on your system to run and test -# your Vapor app in a production-like environment. -# -# Note: This file is intended for testing and does not -# implement best practices for a production deployment. -# -# Learn more: https://docs.docker.com/compose/reference/ -# -# Build images: docker-compose build -# Start app: docker-compose up app -# Stop all: docker-compose down -# -version: '3.7' - -x-shared_environment: &shared_environment - LOG_LEVEL: ${LOG_LEVEL:-debug} - -services: - app: - image: schafkopf-server:latest - build: - context: . - environment: - <<: *shared_environment - ports: - - '8080:8080' - # user: '0' # uncomment to run as root for testing purposes even though Dockerfile defines 'vapor' user. - command: ["serve", "--env", "production", "--hostname", "0.0.0.0", "--port", "8080"]