Для этого вы можете использовать многоступенчатую сборку . Первый этап включает в себя все зависимости разработки, в том числе tsc
; второй этап включает в себя только файлы, необходимые для запуска встроенного приложения.
(я не знаком со спецификой используемой вами среды сборки c, так что это будет соответствовать стандарту node
изображение.)
# First stage: compile things.
FROM node:12 AS build
WORKDIR /usr/src/app
# (Install OS dependencies; include -dev packages if needed.)
# Install the Javascript dependencies, including all devDependencies.
COPY package.json .
RUN npm install
# Copy the rest of the application in and build it.
COPY . .
# RUN npm build
RUN npx tsc -p ./tsconfig.json
# Now /usr/src/app/dist has the built files.
# Second stage: run things.
FROM node:12
WORKDIR /usr/src/app
# (Install OS dependencies; just libraries.)
# Install the Javascript dependencies, only runtime libraries.
COPY package.json .
RUN npm install --production
# Copy the dist tree from the first stage.
COPY --from=build /usr/src/app/dist dist
# Run the built application when the container starts.
EXPOSE 3000
CMD ["npm", "run", "serve"]