У меня есть докер-файл для Prometheus, который работает на amd64 и выглядит следующим образом
ARG ARCH="amd64"
ARG OS="linux"
FROM quay.io/prometheus/busybox-${OS}-${ARCH}:latest
LABEL maintainer="The Prometheus Authors <prometheus-developers@googlegroups.com>"
ARG ARCH="amd64"
ARG OS="linux"
COPY .build/${OS}-${ARCH}/prometheus /bin/prometheus
COPY .build/${OS}-${ARCH}/promtool /bin/promtool
COPY documentation/examples/prometheus.yml /etc/prometheus/prometheus.yml
COPY console_libraries/ /usr/share/prometheus/console_libraries/
COPY consoles/ /usr/share/prometheus/consoles/
RUN ln -s /usr/share/prometheus/console_libraries /usr/share/prometheus/consoles/ /etc/prometheus/
RUN mkdir -p /prometheus && \
chown -R nobody:nogroup etc/prometheus /prometheus
USER nobody
EXPOSE 9090
VOLUME [ "/prometheus" ]
WORKDIR /prometheus
ENTRYPOINT [ "/bin/prometheus" ]
CMD [ "--config.file=/etc/prometheus/prometheus.yml", \
"--storage.tsdb.path=/prometheus", \
"--web.console.libraries=/usr/share/prometheus/console_libraries", \
"--web.console.templates=/usr/share/prometheus/consoles" ]
Опять у меня есть другой докер-файл, который работает на arm64
FROM debian:9
ARG PROMETHEUS_VERSION=2.8.1
ARG ARCH=arm64
ARG PROMETHEUS_URL=https://github.com/prometheus/prometheus/releases/download/v${PROMETHEUS_VERSION}/prometheus-${PROMETHEUS_VERSION}.linux-arm64.tar.gz
RUN apt update && \
apt install -y wget && \
wget ${PROMETHEUS_URL} && \
tar xzf prometheus-${PROMETHEUS_VERSION}.linux-${ARCH}.tar.gz prometheus-${PROMETHEUS_VERSION}.linux-arm64/prometheus && \
cp prometheus-$PROMETHEUS_VERSION.linux-arm64/prometheus .
FROM busybox:1-glibc
ENV PROMETHEUS_STORAGE /data
ENV PROMETHEUS_LOG info
COPY --from=0 /prometheus /usr/local/bin/prometheus
COPY . .
VOLUME $PROMETHEUS_STORAGE
EXPOSE 9090
ENTRYPOINT [ "prometheus" ]
CMD [ "--config.file=./documentation/examples/prometheus.yml", \
"--storage.tsdb.path=/data" ]
Проблема в том, что мне нужно объединить оба файла dockerfiles так, что если у меня есть среда amd64, она должна работать на amd, а если у меня среда arm64, она должна работать на arm64.
Оба файла Docker работают по отдельности.
Пожалуйста, помогите мне с проблемой. Я не получаю никакого способа решить эту проблему. Заранее спасибо