Docker-образы Angie#
Для запуска Angie в контейнере
Docker
используйте образы из нашего реестра: docker.angie.software
.
Они собраны на основе наших бинарных пакетов
и официальных базовых образов ряда операционных систем.
Минимальные образы#
angie:minimal
: версия 1.7.0 на основе Alpine 3.20.angie:<ВЕРСИЯ>-minimal
: указанная версия на основе Alpine 3.20.
В состав этих образов входит только пакет angie
.
Образы с дополнительными модулями#
angie:latest
: версия 1.7.0 на основе Alpine 3.20.angie:<ВЕРСИЯ>
,angie:<ВЕРСИЯ>-alpine
: указанная версия на основе Alpine 3.20.angie:<ВЕРСИЯ>-centos
: указанная версия на основе CentOS Stream 9.angie:<ВЕРСИЯ>-debian
: указанная версия на основе Debian 12.angie:<ВЕРСИЯ>-oracle
: указанная версия на основе Oracle Linux 9.angie:<ВЕРСИЯ>-rocky
: указанная версия на основе Rocky Linux 9.angie:<ВЕРСИЯ>-ubuntu
: указанная версия на основе Ubuntu 24.04 LTS.
Сюда входят следующие пакеты (если они выпускались для версии Angie, с которой собран образ):
Список пакетов
angie-console-light
angie-module-auth-jwt
angie-module-auth-spnego
angie-module-brotli
angie-module-cache-purge
angie-module-dav-ext
angie-module-dynamic-limit-req
angie-module-echo
angie-module-enhanced-memcached
angie-module-eval
angie-module-geoip2
angie-module-headers-more
angie-module-image-filter
angie-module-keyval
angie-module-lua
angie-module-modsecurity
angie-module-ndk
angie-module-njs
angie-module-opentracing
angie-module-otel
angie-module-perl
angie-module-postgres
angie-module-redis2
angie-module-rtmp
angie-module-set-misc
angie-module-subs
angie-module-testcookie
angie-module-upload
angie-module-vod
angie-module-vts
angie-module-xslt
angie-module-zip
angie-module-zstd
Запуск#
Чтобы запустить контейнер 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.7.0
Date: Thu, 19 Sep 2024 10:42:54 GMT
Content-Type: text/html
Content-Length: 543
Last-Modified: Thu, 19 Sep 2024 09:12:23 GMT
Connection: keep-alive
ETag: "64c3ccc7-21f"
Accept-Ranges: bytes
Подобная конфигурация подойдет для локальной разработки и настройки.
Сборка своих образов#
Также можно самостоятельно определить образ
на основе поддерживаемого дистрибутива,
добавив слой Angie из пакетов
или исходного кода.
Примеры соответствующих файлов Dockerfile
:
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 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/$(. /etc/os-release && echo "$ID/$VERSION_ID $VERSION_CODENAME") 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 \
&& 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;"]
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