diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..4eca310 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +.git +.github +.vscode +node_modules +.gitignore +CHANGELOG.md +README.md +dist diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f691fed --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +FROM node:20-slim AS base +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" +RUN corepack enable +WORKDIR /app +COPY package.json ./ +COPY pnpm-lock.yaml ./ + +FROM base AS prod-deps +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile + +FROM base AS build-deps +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile + +FROM build-deps AS build +COPY . . +RUN pnpm run build + +FROM nginx:alpine AS runtime +COPY --from=build /app/dist /usr/share/nginx/html +EXPOSE 80 diff --git a/Readme.md b/Readme.md index eec564b..b117385 100644 --- a/Readme.md +++ b/Readme.md @@ -3,14 +3,30 @@ ## How to use this template ```sh -npm i -g pnpm git clone https://github.com/deployn/astro-deploy new-astro-project cd new-astro-project -pnpm install -pnpm build -pnpm preview ``` +Development Server: + +```sh +npm i -g pnpm +pnpm install +pnpm dev +``` + +Production Build: + +```sh +sudo docker build -t astro-deploy . +docker run -d -p 1234:80 astro-deploy +``` + +## Features + +- 🚀 Astro.js 4 +- 🐳 Docker integration + ## 🧞 Commands All commands are run from the root of the project, from a terminal: diff --git a/src/pages/index.astro b/src/pages/index.astro index b38f8fe..0e5d9a6 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -3,7 +3,11 @@ - Document + Astro Deploy - + +
+
Hello World
+
+