blob: b9021996e4c752ab8749b74b7789cc76cb98a45f [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
ARG ENABLE_PROXY=false
FROM node:22 AS node_builder
ARG TARGETARCH
WORKDIR /app
RUN apt update \
&& apt install -y git \
&& git clone --depth 1 --branch main https://github.com/api7/adc.git \
&& cd adc \
&& corepack enable pnpm \
&& pnpm install \
&& NODE_ENV=production npx nx build cli \
&& node --experimental-sea-config apps/cli/node-sea.json \
&& npx ts-node apps/cli/scripts/download-node.ts \
&& npx postject ./node-binary/linux-${TARGETARCH} NODE_SEA_BLOB sea-prep.blob --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2 \
&& mv ./node-binary/linux-${TARGETARCH} /bin/adc \
&& rm -rf /app
FROM debian:bullseye-slim
ARG TARGETARCH
WORKDIR /app
COPY --from=node_builder /bin/adc /bin/adc
COPY ./bin/apisix-ingress-controller_${TARGETARCH} ./apisix-ingress-controller
ENTRYPOINT ["/app/apisix-ingress-controller"]
CMD ["-c", "/app/conf/config.yaml"]