Update Dockerfile
Browse files- Dockerfile +17 -3
Dockerfile
CHANGED
@@ -1,7 +1,10 @@
|
|
|
|
1 |
FROM alpine:3.15
|
2 |
|
|
|
3 |
RUN apk add --no-cache nginx bash curl
|
4 |
|
|
|
5 |
ENV PROMETHEUS_VERSION=3.3.0
|
6 |
RUN curl -LO https://github.com/prometheus/prometheus/releases/download/v${PROMETHEUS_VERSION}/prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz \
|
7 |
&& tar xvf prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz \
|
@@ -9,23 +12,34 @@ RUN curl -LO https://github.com/prometheus/prometheus/releases/download/v${PROME
|
|
9 |
&& mv prometheus-${PROMETHEUS_VERSION}.linux-amd64/promtool /usr/local/bin/ \
|
10 |
&& rm -rf prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz prometheus-${PROMETHEUS_VERSION}.linux-amd64
|
11 |
|
|
|
12 |
ENV PUSHGATEWAY_VERSION=1.11.1
|
13 |
RUN curl -LO https://github.com/prometheus/pushgateway/releases/download/v${PUSHGATEWAY_VERSION}/pushgateway-${PUSHGATEWAY_VERSION}.linux-amd64.tar.gz \
|
14 |
&& tar xvf pushgateway-${PUSHGATEWAY_VERSION}.linux-amd64.tar.gz \
|
15 |
&& mv pushgateway-${PUSHGATEWAY_VERSION}.linux-amd64/pushgateway /usr/local/bin/ \
|
16 |
&& rm -rf pushgateway-${PUSHGATEWAY_VERSION}.linux-amd64.tar.gz pushgateway-${PUSHGATEWAY_VERSION}.linux-amd64
|
17 |
|
18 |
-
|
19 |
-
|
20 |
-
&&
|
|
|
21 |
|
|
|
22 |
COPY --chown=nobody prometheus.yml /etc/prometheus/prometheus.yml
|
|
|
|
|
23 |
COPY nginx.conf /etc/nginx/nginx.conf
|
24 |
COPY default.conf /etc/nginx/http.d/default.conf
|
|
|
|
|
25 |
COPY entrypoint.sh /entrypoint.sh
|
26 |
RUN chmod +x /entrypoint.sh
|
27 |
|
|
|
28 |
EXPOSE 80
|
|
|
|
|
29 |
USER nobody
|
30 |
|
|
|
31 |
ENTRYPOINT ["/entrypoint.sh"]
|
|
|
1 |
+
# Базовый образ на основе Alpine
|
2 |
FROM alpine:3.15
|
3 |
|
4 |
+
# Устанавливаем зависимости: Nginx, bash, curl
|
5 |
RUN apk add --no-cache nginx bash curl
|
6 |
|
7 |
+
# Устанавливаем Prometheus 3.3.0
|
8 |
ENV PROMETHEUS_VERSION=3.3.0
|
9 |
RUN curl -LO https://github.com/prometheus/prometheus/releases/download/v${PROMETHEUS_VERSION}/prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz \
|
10 |
&& tar xvf prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz \
|
|
|
12 |
&& mv prometheus-${PROMETHEUS_VERSION}.linux-amd64/promtool /usr/local/bin/ \
|
13 |
&& rm -rf prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz prometheus-${PROMETHEUS_VERSION}.linux-amd64
|
14 |
|
15 |
+
# Устанавливаем Pushgateway 1.11.1
|
16 |
ENV PUSHGATEWAY_VERSION=1.11.1
|
17 |
RUN curl -LO https://github.com/prometheus/pushgateway/releases/download/v${PUSHGATEWAY_VERSION}/pushgateway-${PUSHGATEWAY_VERSION}.linux-amd64.tar.gz \
|
18 |
&& tar xvf pushgateway-${PUSHGATEWAY_VERSION}.linux-amd64.tar.gz \
|
19 |
&& mv pushgateway-${PUSHGATEWAY_VERSION}.linux-amd64/pushgateway /usr/local/bin/ \
|
20 |
&& rm -rf pushgateway-${PUSHGATEWAY_VERSION}.linux-amd64.tar.gz pushgateway-${PUSHGATEWAY_VERSION}.linux-amd64
|
21 |
|
22 |
+
# Создаём директории для Prometheus, Nginx логов и временных файлов
|
23 |
+
RUN mkdir -p /prometheus /etc/prometheus /etc/nginx/http.d /var/log/nginx /var/nginx/tmp /var/lib/nginx/logs \
|
24 |
+
&& chown -R nobody:nobody /prometheus /etc/prometheus /etc/nginx /var/log/nginx /var/nginx/tmp /var/lib/nginx/logs \
|
25 |
+
&& chmod -R 777 /prometheus /var/log/nginx /var/nginx/tmp /var/lib/nginx/logs
|
26 |
|
27 |
+
# Копируем конфигурацию Prometheus
|
28 |
COPY --chown=nobody prometheus.yml /etc/prometheus/prometheus.yml
|
29 |
+
|
30 |
+
# Копируем конфигурацию Nginx
|
31 |
COPY nginx.conf /etc/nginx/nginx.conf
|
32 |
COPY default.conf /etc/nginx/http.d/default.conf
|
33 |
+
|
34 |
+
# Копируем entrypoint-скрипт
|
35 |
COPY entrypoint.sh /entrypoint.sh
|
36 |
RUN chmod +x /entrypoint.sh
|
37 |
|
38 |
+
# Открываем только порт 80 для Nginx (ограничение Hugging Face)
|
39 |
EXPOSE 80
|
40 |
+
|
41 |
+
# Запускаем контейнер от имени nobody
|
42 |
USER nobody
|
43 |
|
44 |
+
# Указываем точку входа
|
45 |
ENTRYPOINT ["/entrypoint.sh"]
|