File size: 2,321 Bytes
d0f5189 9b8efb6 d0f5189 9b8efb6 d0f5189 9b8efb6 d0f5189 9b8efb6 0e2022f 9b8efb6 d0f5189 9b8efb6 d0f5189 ed7a6e1 d0f5189 9b8efb6 0e2022f 8f7d6e0 d0f5189 9b8efb6 d0f5189 9b8efb6 |
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 36 37 38 39 40 41 42 43 44 45 |
# Базовый образ на основе Alpine
FROM alpine:3.15
# Устанавливаем зависимости: Nginx, bash, curl
RUN apk add --no-cache nginx bash curl
# Устанавливаем Prometheus 3.3.0
ENV PROMETHEUS_VERSION=3.3.0
RUN curl -LO https://github.com/prometheus/prometheus/releases/download/v${PROMETHEUS_VERSION}/prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz \
&& tar xvf prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz \
&& mv prometheus-${PROMETHEUS_VERSION}.linux-amd64/prometheus /usr/local/bin/ \
&& mv prometheus-${PROMETHEUS_VERSION}.linux-amd64/promtool /usr/local/bin/ \
&& rm -rf prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz prometheus-${PROMETHEUS_VERSION}.linux-amd64
# Устанавливаем Pushgateway 1.11.1
ENV PUSHGATEWAY_VERSION=1.11.1
RUN curl -LO https://github.com/prometheus/pushgateway/releases/download/v${PUSHGATEWAY_VERSION}/pushgateway-${PUSHGATEWAY_VERSION}.linux-amd64.tar.gz \
&& tar xvf pushgateway-${PUSHGATEWAY_VERSION}.linux-amd64.tar.gz \
&& mv pushgateway-${PUSHGATEWAY_VERSION}.linux-amd64/pushgateway /usr/local/bin/ \
&& rm -rf pushgateway-${PUSHGATEWAY_VERSION}.linux-amd64.tar.gz pushgateway-${PUSHGATEWAY_VERSION}.linux-amd64
# Создаём директории для Prometheus, Nginx логов, временных файлов и PID
RUN mkdir -p /prometheus /etc/prometheus /etc/nginx/http.d /var/log/nginx /var/nginx/tmp /var/lib/nginx/logs /run/nginx \
&& chown -R nobody:nobody /prometheus /etc/prometheus /etc/nginx /var/log/nginx /var/nginx/tmp /var/lib/nginx/logs /run/nginx \
&& chmod -R 777 /prometheus /var/log/nginx /var/nginx/tmp /var/lib/nginx/logs /run/nginx
# Копируем конфигурацию Prometheus
COPY --chown=nobody prometheus.yml /etc/prometheus/prometheus.yml
# Копируем конфигурацию Nginx
COPY nginx.conf /etc/nginx/nginx.conf
COPY default.conf /etc/nginx/http.d/default.conf
# Копируем entrypoint-скрипт
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
# Открываем порт 8080 для Nginx (изменено с 80)
EXPOSE 8080
# Запускаем контейнер от имени nobody
USER nobody
# Указываем точку входа
ENTRYPOINT ["/entrypoint.sh"] |