microsoft/TypeAgent
Publicmirrored from https://github.com/microsoft/TypeAgentAvailable
ts/Dockerfile
39lines · modecode
| 1 | FROM node:20 AS base |
| 2 | |
| 3 | ENV PNPM_HOME="/pnpm" |
| 4 | ENV PATH="$PNPM_HOME:$PATH" |
| 5 | RUN corepack enable |
| 6 | |
| 7 | |
| 8 | # base only image |
| 9 | FROM base AS build |
| 10 | COPY ./ /usr/src/app |
| 11 | WORKDIR /usr/src/app |
| 12 | RUN pnpm install --frozen-lockfile |
| 13 | RUN pnpm run -r build |
| 14 | RUN pnpm deploy --filter=agent-api --prod /prod/api |
| 15 | RUN pnpm deploy --filter=tools-scripts --prod /prod/tools |
| 16 | |
| 17 | # image with api and tool bits only |
| 18 | FROM base AS api |
| 19 | # api bits |
| 20 | COPY --from=build /prod/api/ /prod/api/ |
| 21 | COPY --from=build /prod/tools/ /prod/tools/ |
| 22 | # rendering bits |
| 23 | COPY --from=build /usr/src/app/packages/shell/out/ /prod/shell/out/ |
| 24 | WORKDIR /prod/api |
| 25 | |
| 26 | # dependencies |
| 27 | RUN apt-get update |
| 28 | RUN apt install -y gnome-keyring |
| 29 | RUN curl -sL https://aka.ms/InstallAzureCLIDeb | bash |
| 30 | |
| 31 | EXPOSE 80:3000 |
| 32 | |
| 33 | # setup start actions |
| 34 | RUN echo az login --identity >> start.sh |
| 35 | RUN echo node ../tools/scripts/getKeys.mjs >> start.sh |
| 36 | RUN echo pnpm start >> start.sh |
| 37 | |
| 38 | # azure login, then start node application |
| 39 | CMD bash start.sh |