Docker-образы Angie

Docker-образы Angie#

Для запуска Angie в контейнере Docker используйте образы из нашего реестра:

docker.angie.software/angie
docker.angie.software/angie:latest
docker.angie.software/angie:1.5.1
docker.angie.software/angie:1.5.1-minimal
docker.angie.software/angie:1.5.1-alpine
docker.angie.software/angie:1.5.1-centos
docker.angie.software/angie:1.5.1-debian
docker.angie.software/angie:1.5.1-oracle
docker.angie.software/angie:1.5.1-rocky
docker.angie.software/angie:1.5.1-ubuntu

Чтобы запустить контейнер c Angie на 8080 порте, открыв ему доступ на чтение к каталогу со статическими файлами /var/www/ и файлу конфигурации angie.conf, лежащему в текущем рабочем каталоге:

$ docker run --rm --name angie -v /var/www:/usr/share/angie/html:ro \
    -v $(pwd)/angie.conf:/etc/angie/angie.conf:ro -p 8080:80 -d docker.angie.software/angie:latest

$ curl -I localhost:8080

    HTTP/1.1 200 OK
    Server: Angie/1.5.1
    Date: Wed, 16 May 2024 10:42:54 GMT
    Content-Type: text/html
    Content-Length: 543
    Last-Modified: Wed, 16 May 2024 09:12:23 GMT
    Connection: keep-alive
    ETag: "64c3ccc7-21f"
    Accept-Ranges: bytes

Подобная конфигурация подойдет для локальной разработки и настройки.

Также можно самостоятельно определить образ на основе поддерживаемого дистрибутива, добавив слой Angie из пакетов или исходного кода. Примеры соответствующих файлов Dockerfile:

Debian, сборка Angie из пакетов#
FROM debian:12

LABEL org.opencontainers.image.authors="Release Engineering Team <devops@tech.wbsrv.ru>"

ARG DEBIAN_FRONTEND=noninteractive

RUN set -x \
     && apt-get update \
     && apt-get install --no-install-recommends --no-install-suggests -y \
          ca-certificates lsb-release curl \
     && curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg \
          https://angie.software/keys/angie-signing.gpg \
     && echo "deb https://download.angie.software/angie/debian/ `lsb_release \
           -cs` main" > /etc/apt/sources.list.d/angie.list \
     && apt-get update \
     && apt-get install --no-install-recommends --no-install-suggests -y \
          angie angie-module-geoip2 angie-module-njs \
     && apt-get remove --auto-remove --purge -y lsb-release \
     && rm -Rf /var/lib/apt/lists \
          /etc/apt/sources.list.d/angie.list \
          /etc/apt/trusted.gpg.d/angie-signing.gpg \
     && ln -sf /dev/stdout /var/log/angie/access.log \
     && ln -sf /dev/stderr /var/log/angie/error.log

EXPOSE 80

CMD ["angie", "-g", "daemon off;"]
Alpine, сборка Angie из пакетов#
FROM alpine:3.19

LABEL org.opencontainers.image.authors="Release Engineering Team <devops@tech.wbsrv.ru>"

RUN set -x \
     && apk add --no-cache ca-certificates curl \
     && curl -o /etc/apk/keys/angie-signing.rsa https://angie.software/keys/angie-signing.rsa \
     && echo "https://download.angie.software/angie/alpine/v$(egrep -o \
          '[0-9]+\.[0-9]+' /etc/alpine-release)/main" >> /etc/apk/repositories \
     && apk add --no-cache angie angie-module-geoip2 angie-module-njs \
     && rm /etc/apk/keys/angie-signing.rsa \
     && ln -sf /dev/stdout /var/log/angie/access.log \
     && ln -sf /dev/stderr /var/log/angie/error.log

EXPOSE 80

CMD ["angie", "-g", "daemon off;"]

Чтобы собрать образ myangie в каталоге с таким Dockerfile и запустить контейнер, как показано выше:

$ docker build -t myangie .
$ docker run --rm --name myangie -v /var/www:/usr/share/angie/html:ro \
    -v $(pwd)/angie.conf:/etc/angie/angie.conf:ro -p 8080:80 -d myangie