diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..1ab810a --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +private/ \ No newline at end of file diff --git a/api/Dockerfile b/api/Dockerfile index 4c928f9..ecc1470 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -1,15 +1,17 @@ FROM node:16 as build -WORKDIR /build/ -COPY package.json yarn.lock .yarnrc.yml ./ -COPY .yarn ./.yarn +WORKDIR /build/app +COPY api/package.json api/yarn.lock api/.yarnrc.yml ./ +COPY api/.yarn ./.yarn +COPY lib ../lib RUN yarn install --immutable -COPY . . +COPY ./api . RUN yarn build FROM node:16 as prod -WORKDIR /app/ -COPY --from=build /build/package.json /build/yarn.lock /build/.yarnrc.yml ./ -COPY --from=build /build/.yarn ./.yarn -COPY --from=build /build/dist ./dist +WORKDIR /app/api +COPY --from=build /build/app/package.json /build/app/yarn.lock /build/app/.yarnrc.yml ./ +COPY --from=build /build/app/.yarn ./.yarn +COPY --from=build /build/app/dist ./dist +COPY ./lib ../lib RUN yarn install --immutable CMD ["yarn", "start"] diff --git a/bot/Dockerfile b/bot/Dockerfile index 4c928f9..95871ef 100644 --- a/bot/Dockerfile +++ b/bot/Dockerfile @@ -1,15 +1,17 @@ FROM node:16 as build -WORKDIR /build/ -COPY package.json yarn.lock .yarnrc.yml ./ -COPY .yarn ./.yarn +WORKDIR /build/app +COPY bot/package.json bot/yarn.lock bot/.yarnrc.yml ./ +COPY bot/.yarn ./.yarn +COPY lib ../lib RUN yarn install --immutable -COPY . . +COPY ./bot . RUN yarn build FROM node:16 as prod -WORKDIR /app/ -COPY --from=build /build/package.json /build/yarn.lock /build/.yarnrc.yml ./ -COPY --from=build /build/.yarn ./.yarn -COPY --from=build /build/dist ./dist +WORKDIR /app/bot +COPY --from=build /build/app/package.json /build/app/yarn.lock /build/app/.yarnrc.yml ./ +COPY --from=build /build/app/.yarn ./.yarn +COPY --from=build /build/app/dist ./dist +COPY ./lib ../lib RUN yarn install --immutable CMD ["yarn", "start"] diff --git a/bridge/Dockerfile b/bridge/Dockerfile index 4c928f9..a5c7d82 100644 --- a/bridge/Dockerfile +++ b/bridge/Dockerfile @@ -1,15 +1,17 @@ FROM node:16 as build -WORKDIR /build/ -COPY package.json yarn.lock .yarnrc.yml ./ -COPY .yarn ./.yarn +WORKDIR /build/app +COPY bridge/package.json bridge/yarn.lock bridge/.yarnrc.yml ./ +COPY bridge/.yarn ./.yarn +COPY lib ../lib RUN yarn install --immutable -COPY . . +COPY ./bridge . RUN yarn build FROM node:16 as prod -WORKDIR /app/ -COPY --from=build /build/package.json /build/yarn.lock /build/.yarnrc.yml ./ -COPY --from=build /build/.yarn ./.yarn -COPY --from=build /build/dist ./dist +WORKDIR /app/bridge +COPY --from=build /build/app/package.json /build/app/yarn.lock /build/app/.yarnrc.yml ./ +COPY --from=build /build/app/.yarn ./.yarn +COPY --from=build /build/app/dist ./dist +COPY ./lib ../lib RUN yarn install --immutable CMD ["yarn", "start"] diff --git a/docker-compose.yml.example b/docker-compose.yml.example index 37d7097..8e9d1f7 100644 --- a/docker-compose.yml.example +++ b/docker-compose.yml.example @@ -5,7 +5,9 @@ version: "3.1" services: bot: - build: ./bot + build: + context: . + dockerfile: ./bot/Dockerfile environment: - DB_HOST=mongo:27017 - DB_USERNAME=mogus @@ -33,7 +35,9 @@ services: restart: unless-stopped api: - build: ./api + build: + context: . + dockerfile: ./api/Dockerfile environment: - BOT_API_TOKEN=${INTERNAL_API_TOKEN} - DB_HOST=mongo:27017 @@ -47,7 +51,9 @@ services: restart: unless-stopped bridge: - build: ./bridge + build: + context: . + dockerfile: ./bridge/Dockerfile environment: - REVOLT_TOKEN=${BOT_TOKEN} - DISCORD_TOKEN=${BOT_TOKEN_DISCORD} @@ -67,7 +73,8 @@ services: # platform like Vercel, you can remove this part. web: build: - context: ./web + context: . + dockerfile: ./web/Dockerfile args: - VITE_API_URL=${PUBLIC_API_URL} - VITE_BOT_PREFIX=${BOT_PREFIX} diff --git a/web/Dockerfile b/web/Dockerfile index a3f74e2..6b51245 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -1,18 +1,20 @@ FROM node:16 as build ARG VITE_API_URL ARG VITE_BOT_PREFIX -WORKDIR /build/ -COPY package.json yarn.lock .yarnrc.yml ./ -COPY .yarn ./.yarn +WORKDIR /build/app +COPY web/package.json web/yarn.lock web/.yarnrc.yml ./ +COPY web/.yarn ./.yarn +COPY lib ../lib RUN yarn install --immutable -COPY . . +COPY web . RUN yarn build FROM node:16 as prod -WORKDIR /app/ -COPY --from=build /build/package.json /build/yarn.lock /build/.yarnrc.yml ./ -COPY --from=build /build/.yarn ./.yarn -COPY --from=build /build/dist ./dist +WORKDIR /app/web +COPY --from=build /build/app/package.json /build/app/yarn.lock /build/app/.yarnrc.yml ./ +COPY --from=build /build/app/.yarn ./.yarn +COPY --from=build /build/app/dist ./dist +COPY ./lib ../lib RUN yarn add vite # Running this with bash -c because it won't exit on ctrl+c otherwise CMD ["bash", "-c", "yarn preview --port=80 --strictPort=true --clearScreen=false --host"]