Skip to content

Instantly share code, notes, and snippets.

@ducan-ne
Last active December 24, 2023 17:45
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save ducan-ne/de428a6bd11c8d0fba90186fee7b03b8 to your computer and use it in GitHub Desktop.
Save ducan-ne/de428a6bd11c8d0fba90186fee7b03b8 to your computer and use it in GitHub Desktop.
Dockerfile "zero-config" over 35 frameworks. "One Dockerfile to rule them all"
# The Caddyfile is an easy way to configure your Caddy web server.
#
# Unless the file starts with a global options block, the first
# uncommented line is always the address of your site.
#
# To use your own domain name (with automatic HTTPS), first make
# sure your domain's A/AAAA DNS records are properly pointed to
# this machine's public IP, then replace ":80" below with your
# domain name.
:3000 {
# Set this path to your site's directory.
root * /usr/share/caddy
# Enable the static file server.
file_server
# Another common task is to set up a reverse proxy:
# reverse_proxy localhost:8080
# Or serve a PHP site through php-fpm:
# php_fastcgi localhost:9000
}
# Refer to the Caddy docs for more information:
# https://caddyserver.com/docs/caddyfile
FROM node:16-alpine as base
WORKDIR /app
RUN apk add --no-cache libc6-compat
RUN npm i -g vercel@28.10.1
COPY . .
RUN corepack enable
RUN mkdir .vercel && echo '{"projectId": "_","orgId": "_","settings": {}}' > .vercel/project.json && vercel build
FROM caddy:2.6.2-alpine
WORKDIR /usr/share/caddy/
COPY --from=base /app/.vercel/output/static .
COPY --from=base /app/Caddyfile /etc/caddy/Caddyfile
EXPOSE 3000
CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment