在多个Dockerfile目标之间共享设置代码
假设我有以下dockerfile:在多个Dockerfile目标之间共享设置代码,docker,dry,Docker,Dry,假设我有以下dockerfile: # Build # ----------------------------------------------------------------------------- FROM node:12.18.4 AS build WORKDIR /app RUN mkdir -p /app COPY package.json yarn.lock .npmrc ./ RUN yarn install --no-progress --frozen-lock
# Build
# -----------------------------------------------------------------------------
FROM node:12.18.4 AS build
WORKDIR /app
RUN mkdir -p /app
COPY package.json yarn.lock .npmrc ./
RUN yarn install --no-progress --frozen-lockfile
COPY . .
# Release
# -----------------------------------------------------------------------------
FROM node:12-alpine AS release
RUN \
addgroup -S -g 1001 example && \
adduser -S -G example -u 1001 example && \
mkdir /app && \
chown example:example /app
WORKDIR /app
USER example
COPY --chown=example:example --from=build /app .
CMD ["./node_modules/.bin/ts-node", "--transpile-only", "./bin/http.ts"]
# Worker
# -----------------------------------------------------------------------------
FROM node:12-alpine AS worker
RUN \
addgroup -S -g 1001 example && \
adduser -S -G example -u 1001 example && \
mkdir /app && \
chown example:example /app
WORKDIR /app
USER example
COPY --chown=example:example --from=build /app .
CMD ["./node_modules/.bin/ts-node", "--transpile-only", "./bin/worker.ts"]
我如何遵循良好的DRY原则并在两个docker目标之间共享设置代码(例如,组/用户创建等)?制作一个公共基础图像,并在此基础上构建目标。