frontend using bun + elysia
This commit is contained in:
		| @@ -1,4 +1,35 @@ | ||||
| FROM oven/bun | ||||
| FROM docker.io/oven/bun as base | ||||
| WORKDIR /usr/src/app | ||||
|  | ||||
| # install dependencies into temp directory | ||||
| FROM base AS install | ||||
| RUN mkdir -p /temp/dev | ||||
| COPY package.json bun.lockb /temp/dev/ | ||||
| RUN cd /temp/dev && bun install --frozen-lockfile | ||||
|  | ||||
| RUN bun install --production | ||||
| # install with --production (exclude devDependencies) | ||||
| RUN mkdir -p /temp/prod | ||||
| COPY package.json bun.lockb /temp/prod/ | ||||
| RUN cd /temp/prod && bun install --frozen-lockfile --production | ||||
|  | ||||
| # copy node_modules from temp directory | ||||
| # then copy all (non-ignored) project files into the image | ||||
| FROM base AS prerelease | ||||
| COPY --from=install /temp/dev/node_modules node_modules | ||||
| COPY . . | ||||
|  | ||||
| # [optional] tests & build | ||||
| ENV NODE_ENV=production | ||||
| RUN bun test | ||||
| RUN bun run build | ||||
|  | ||||
| # copy production dependencies and source code into final image | ||||
| FROM base AS release | ||||
| COPY --from=install /temp/prod/node_modules node_modules | ||||
| COPY --from=prerelease /usr/src/app/index.ts . | ||||
| COPY --from=prerelease /usr/src/app/package.json . | ||||
|  | ||||
| # run the app | ||||
| USER bun | ||||
| EXPOSE 3000/tcp | ||||
| ENTRYPOINT [ "bun", "run", "index.ts" ] | ||||
		Reference in New Issue
	
	Block a user