Imágenes Docker de Angie#
Para ejecutar Angie en un contenedor
Docker
utilice las imágenes de nuestro registro: docker.angie.software.
Están creadas a partir de nuestros paquetes binarios
y de las imágenes base oficiales de varios sistemas operativos.
Nota
Estas imágenes también pueden ejecutarse con motores de contenedores compatibles con Docker, como Podman. La versión recomendada de Podman es 4.9.3 o superior.
Nota
Tenga en cuenta también el módulo Docker, que implementa la actualización dinámica de grupos de servidores upstream basándose en etiquetas de contenedores Docker.
Imágenes mínimas#
angie:minimal: versión 1.12.1 basada en Alpine 3.22.angie:<VERSION>-minimal: versión especificada basada en Alpine 3.22.
Estas imágenes incluyen solo el paquete angie.
Imágenes con plantillas#
angie:templated: versión 1.12.1 basada en Alpine 3.22.angie:<VERSION>-templated: versión especificada basada en Alpine 3.22.
Estas imágenes establecen las siguientes variables de entorno:
ENV ANGIE_BINARY="angie"
ENV ANGIE_CONFIG_TEMPLATE="/etc/angie/angie.conf.t"
ENV ANGIE_ERROR_LOG_SEVERITY="notice"
ENV ANGIE_FEATURE_RELOAD="on"
ENV ANGIE_FEATURE_TEMPLATE="on"
ENV ANGIE_LOAD_MODULES=""
ENV ANGIE_PID_FILE="/run/angie/angie.pid"
ENV ANGIE_WORKER_CONNECTIONS="65536"
ENV ANGIE_WORKER_RLIMIT_NOFILE="65536"
Estas variables pueden utilizarse para personalizar el funcionamiento del contenedor:
ANGIE_BINARY: Permite ejecutar la versión de depuración.ANGIE_ERROR_LOG_SEVERITY: Define el nivel de detalle de las entradas en el archivo principal del registro de errores.ANGIE_LOAD_MODULES: Carga uno o varios módulos disponibles (todos los módulos están incluidos en la imagen). Especifique una lista de módulos separada por comas sin espacios.ANGIE_PID_FILE: Establece una ubicación alternativa para el archivo de identificador del proceso (archivo PID).ANGIE_FEATURE_TEMPLATE: Genera la configuración de Angie usando la herramienta gomplate al iniciar el contenedor. Parámetros usados:--input-dir /etc/angie/templatesy--output-dir /etc/angie.ANGIE_FEATURE_RELOAD: Activa la gestión de las señalesSIGHUP,SIGQUITySIGTERM.
Estas incluyen los siguientes paquetes (si se publicaron para la versión de Angie con la que se construyó la imagen):
Lista de paquetes
angie-console-lightangie-module-auth-jwtangie-module-auth-ldapangie-module-auth-pamangie-module-auth-spnegoangie-module-auth-totpangie-module-brotliangie-module-cache-purgeangie-module-cgiangie-module-combined-upstreamsangie-module-dav-extangie-module-dynamic-limit-reqangie-module-echoangie-module-enhanced-memcachedangie-module-evalangie-module-geoip2angie-module-headers-moreangie-module-http-auth-radiusangie-module-image-filterangie-module-keyvalangie-module-luaangie-module-modsecurityangie-module-ndkangie-module-njsangie-module-opentracingangie-module-otelangie-module-perlangie-module-postgresangie-module-redis2angie-module-rtmpangie-module-set-miscangie-module-subsangie-module-testcookieangie-module-unbrotliangie-module-uploadangie-module-vodangie-module-vtsangie-module-wasmangie-module-wasmtimeangie-module-xsltangie-module-zipangie-module-zstd
Ejemplos#
La configuración usada en las imágenes con plantillas aplica las variables aproximadamente de la siguiente manera:
...
{{- if has $modules "zstd"}}
# package: angie-module-zstd
load_module modules/ngx_http_zstd_filter_module.so;
load_module modules/ngx_http_zstd_static_module.so;
{{end}}
user angie;
worker_processes auto;
worker_rlimit_nofile {{.Env.ANGIE_WORKER_RLIMIT_NOFILE}};
error_log /var/log/angie/error.log {{.Env.ANGIE_ERROR_LOG_SEVERITY}};
pid {{.Env.ANGIE_PID_FILE}};
events {
worker_connections {{.Env.ANGIE_WORKER_CONNECTIONS}};
}
http {
include /etc/angie/mime.types;
default_type application/octet-stream;
log_format main ...
Ejecutar un contenedor con acceso a la línea de comandos:
$ docker run -it --pull always --rm --entrypoint=sh \
docker.angie.software/angie:templated
Ejecutar Angie con parámetros de conexión y módulos personalizados (el comando angie -T mostrará la configuración completa):
$ docker run -it --rm -e ANGIE_WORKER_CONNECTIONS=4 \
-e ANGIE_LOAD_MODULES="auth-jwt,vod" \
docker.angie.software/angie:templated angie -T
Ejecutar un contenedor con un nombre concreto y módulos adicionales:
$ docker run -it --rm --name angie-test \
-e ANGIE_WORKER_CONNECTIONS=4 \
-e ANGIE_LOAD_MODULES="auth-jwt,vod" \
docker.angie.software/angie:templated
Recargar la configuración de un contenedor en ejecución:
$ docker kill -s HUP angie-test
Imágenes con módulos adicionales#
angie:latest: versión 1.12.1 basada en Alpine 3.22.angie:<VERSION>,angie:<VERSION>-alpine: versión especificada basada en Alpine 3.22.angie:<VERSION>-debian: versión especificada basada en Debian 13.angie:<VERSION>-rocky: versión especificada basada en Rocky Linux 9.angie:<VERSION>-ubuntu: versión especificada basada en Ubuntu 24.04 LTS.
Estas incluyen los siguientes paquetes (si se publicaron para la versión de Angie con la que se construyó la imagen):
Lista de paquetes
angie-console-lightangie-module-auth-jwtangie-module-auth-ldapangie-module-auth-pamangie-module-auth-spnegoangie-module-auth-totpangie-module-brotliangie-module-cache-purgeangie-module-cgiangie-module-combined-upstreamsangie-module-dav-extangie-module-dynamic-limit-reqangie-module-echoangie-module-enhanced-memcachedangie-module-evalangie-module-geoip2angie-module-headers-moreangie-module-http-auth-radiusangie-module-image-filterangie-module-keyvalangie-module-luaangie-module-modsecurityangie-module-ndkangie-module-njsangie-module-opentracingangie-module-otelangie-module-perlangie-module-postgresangie-module-redis2angie-module-rtmpangie-module-set-miscangie-module-subsangie-module-testcookieangie-module-unbrotliangie-module-uploadangie-module-vodangie-module-vtsangie-module-wasmangie-module-wasmtimeangie-module-xsltangie-module-zipangie-module-zstd
Ejecución#
Para iniciar un contenedor con Angie en el puerto 8080,
proporcionando acceso de solo lectura al directorio de archivos estáticos /var/www/
y al archivo de configuración angie.conf ubicado en el directorio de trabajo actual:
$ 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.12.1
Date: Fri, 17 Jul 2026 10:42:54 GMT
Content-Type: text/html
Content-Length: 543
Last-Modified: Fri, 17 Jul 2026 09:12:23 GMT
Connection: keep-alive
ETag: "64c3ccc7-21f"
Accept-Ranges: bytes
Esta configuración es adecuada para desarrollo y ajustes locales.
Al usar el módulo ACME para obtener certificados, monte el directorio de almacenamiento de certificados en un volumen persistente para que los certificados emitidos sobrevivan a la recreación del contenedor. De lo contrario, cada contenedor recreado comienza con un almacenamiento vacío y solicita nuevos certificados, lo que puede alcanzar los límites de tasa de la CA:
$ docker run --rm --name angie -v angie-acme:/var/lib/angie/acme \
-v $(pwd)/angie.conf:/etc/angie/angie.conf:ro -p 80:80 -p 443:443 -d docker.angie.software/angie:latest
Construcción de imágenes personalizadas#
También puede definir su propia imagen
basada en una distribución compatible,
añadiendo la capa de Angie desde paquetes
o código fuente.
Ejemplos de archivos Dockerfile correspondientes:
FROM debian:13
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.22
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;"]
Para construir la imagen myangie en el directorio con este Dockerfile
y ejecutar el contenedor como se muestra arriba:
$ 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