forked from livecycle/preevy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile.cli
35 lines (30 loc) · 1.29 KB
/
Dockerfile.cli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
FROM node:18-bullseye as base
FROM base as deps-files
WORKDIR /app
COPY --link yarn.lock package.json .
COPY --link packages packages
RUN find . -type f -not -iname "yarn.lock" -not -iname "package.json" -delete && find . -type l -delete && find . -type d -empty -delete
FROM busybox as ldid
RUN wget -q https://github.com/ProcursusTeam/ldid/releases/download/v2.1.5-procursus7/ldid_linux_aarch64 -O /usr/bin/ldid
RUN chmod +x /usr/bin/ldid
FROM base as builder
WORKDIR /app
COPY --link --from=deps-files /app /app
RUN --mount=type=cache,id=livecycle/preevy-cli/yarn-cache,target=/yarn/cache \
yarn --cache-folder=/yarn/cache
COPY --link . .
RUN yarn build
FROM builder as pkg
ARG CLI_TARGET=macos-arm64
WORKDIR /app/packages/cli
ENV PKG_CACHE_PATH=/pkg/cache
COPY --from=ldid --link /usr/bin/ldid /usr/bin/ldid
RUN --mount=type=cache,id=livecycle/preevy-cli/pkg-cache,target=/pkg/cache \
yarn pkg --compress GZip --no-dict --public --public-packages tslib --options max_old_space_size=4096 -t node18-${CLI_TARGET} .
FROM scratch as cli
ARG CLI_TARGET=macos-arm64
COPY --link --from=pkg /app/packages/cli/preevy /preevy
# use docker buildx build -f Dockerfile.cli --target=cli . --output=type=local,dest=./dist
FROM docker:24-cli as release
COPY --from=pkg /app/packages/cli/preevy /usr/bin/
CMD [ "preevy" ]