mirror of
https://github.com/discordeno/discordeno.git
synced 2026-05-29 15:00:07 +00:00
76 lines
1.7 KiB
Docker
76 lines
1.7 KiB
Docker
# syntax=docker/dockerfile:1
|
|
|
|
ARG NODE_VERSION=20
|
|
|
|
################################################################################
|
|
|
|
FROM node:${NODE_VERSION}-alpine AS base
|
|
|
|
# Set working directory for all build stages.
|
|
WORKDIR /usr/src/app
|
|
|
|
# Enable corepack so it can install the needed yarn version
|
|
RUN corepack enable
|
|
|
|
COPY package.json .
|
|
COPY yarn.lock .
|
|
# We need to copy the yarnrc or else yarn will attempt to use PnP
|
|
COPY .yarnrc.yml .
|
|
|
|
RUN yarn install
|
|
|
|
# Copy the rest of the source files into the image.
|
|
COPY . .
|
|
|
|
# Run the build script.
|
|
RUN yarn build
|
|
|
|
# Use production node environment by default.
|
|
ENV NODE_ENV=production
|
|
|
|
# Run the application as a non-root user.
|
|
USER node
|
|
|
|
################################################################################
|
|
|
|
FROM base AS rest
|
|
|
|
# Expose the port that the application listens on.
|
|
EXPOSE 8000
|
|
|
|
# Run the application.
|
|
CMD ["node", "dist/rest/index.js"]
|
|
|
|
################################################################################
|
|
|
|
FROM base AS gateway
|
|
|
|
# Expose the port that the application listens on.
|
|
EXPOSE 8080
|
|
|
|
# Run the application.
|
|
CMD ["node", "dist/gateway/index.js"]
|
|
|
|
################################################################################
|
|
|
|
FROM base AS bot
|
|
|
|
# Expose the port that the application listens on.
|
|
EXPOSE 8081
|
|
|
|
# Run the application.
|
|
CMD ["node", "dist/bot/index.js"]
|
|
|
|
################################################################################
|
|
|
|
FROM rabbitmq:4.0-management-alpine AS rabbitmq
|
|
|
|
# Copy the rabbitmq plugins
|
|
COPY rabbitmq/plugins/** plugins
|
|
|
|
HEALTHCHECK --interval=30s --timeout=30s --start-period=30s --retries=5 \
|
|
CMD rabbitmq-diagnostics -q ping || exit 1
|
|
|
|
# Enable the required plugins
|
|
RUN rabbitmq-plugins enable rabbitmq_message_deduplication
|