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"]