PROM_PG / Dockerfile
SatCat's picture
Update Dockerfile
0e2022f verified
raw
history blame
2.32 kB
# Базовый образ на основе 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"]