alpine-nginx
alpine-nginx copied to clipboard
Nginx running on Alpine Linux [Docker]
Nginx container image running on Alpine Linux
This Container image (yobasystems/alpine-nginx) is based on the minimal Alpine Linux with version 1.25.4 of NGINX
Alpine Version 3.19.1 (Released 2023-01-26)
NGINX Version 1.25.4 (Mainline)
NGINX Version 1.24.0 (Stable)
Table of Contents
- What is Alpine Linux?
- Features
- Architectures
- Tags
- Layers & Sizes
- How to use this image
- Image contents & Vulnerability analysis
- Source Repositories
- Container Registries
- Links
- Donation
🏔️ What is Alpine Linux?
Alpine Linux is a Linux distribution built around musl libc and BusyBox. The image is only 5 MB in size and has access to a package repository that is much more complete than other BusyBox based images. This makes Alpine Linux a great image base for utilities and even production applications. Read more about Alpine Linux here and you can see how their mantra fits in right at home with Container images.
What is NGINX?
NGINX is open source software for web serving, reverse proxying, caching, load balancing, media streaming, and more. It started out as a web server designed for maximum performance and stability. In addition to its HTTP server capabilities, NGINX can also function as a proxy server for email (IMAP, POP3, and SMTP) and a reverse proxy and load balancer for HTTP, TCP, and UDP servers. [engine-ex]
✨ Features
- Minimal size only, minimal layers
- Memory usage is minimal on a simple install.
- Auto git clone from repo with
yobasystems/alpine-nginx:git
tag
🏗️ Architectures
-
:amd64
,:x86_64
- 64 bit Intel/AMD (x86_64/amd64) -
:arm64v8
,:aarch64
- 64 bit ARM (ARMv8/aarch64) -
:arm32v7
,:armhf
- 32 bit ARM (ARMv7/armhf)
📝 PLEASE CHECK TAGS BELOW FOR SUPPORTED ARCHITECTURES, THE ABOVE IS A LIST OF EXPLANATION
🏷️ Tags
-
:latest
latest branch based on mainline (Automatic Architecture Selection) -
:master
master branch usually inline with latest (Automatic Architecture Selection) -
:mainline
latest branch based on mainline release (Automatic Architecture Selection) -
:stable
stable branch usually inline with latest stable release (Automatic Architecture Selection) -
:git
latest branch with git based on mainline (Automatic Architecture Selection) -
:git-ssh
latest branch with git and ssh auth for private repo based on mainline (Automatic Architecture Selection) -
:amd64
,:x86_64
amd64 based on latest tag but amd64 architecture -
:git-amd64
,:git-x86_64
amd64 based on latest tag but amd64 architecture and includes git -
:git-ssh-amd64
,:git-ssh-x86_64
amd64 based on latest tag but amd64 architecture and includes git and ssh auth for private repo -
:aarch64
,:arm64v8
Armv8 based on latest tag but arm64 architecture -
:aarch64-git
,:git-arm64v8
Armv8 based on latest tag but arm64 architecture and includes git -
:aarch64-git-ssh
,:git-ssh-arm64v8
Armv8 based on latest tag but arm64 architecture and includes git and ssh auth for private repo -
:armhf
,:arm32v7
Armv7 based on latest tag but arm architecture -
:git-armhf
,:git-arm32v7
Armv7 based on latest tag but arm architecture and includes git -
:git-ssh-armhf
,:git-ssh-arm32v7
Armv7 based on latest tag but arm architecture and includes git and ssh auth for private repo
📏 Layers & Sizes
🚀 How to use this image
Environment Variables:
-
URL
: specify the url with that nginx will listen on. Default to localhost.
HTML content
To alter the HTML content that nginx serves up (add your website files), add the following to your Dockerfile:
ADD /path/to/content /etc/nginx/html
index.html is the default, but that's easily changed (see below).
Nginx configuration
A basic nginx configuration is supplied with this image. But it's easy to overwrite:
- Create your own
nginx.conf
. - In your
Dockerfile
, make sure yournginx.conf
file is copied to/etc/nginx/nginx.conf
.
Make sure you start nginx without daemon mode, by including daemon off;
in your nginx configuration, otherwise the container will constantly exit right after nginx starts.
Creating an instance
To use this image include FROM yobasystems/alpine-nginx
at the top of your Dockerfile.
docker run --name webapp -p 80:80 -p 443:443 -e URL=www.example.co.uk yobasystems/alpine-nginx
To use persistent data , then use the volume var:
docker run --name webapp -p 80:80 -p 443:443 -e URL=www.example.co.uk -v /app/www:/etc/nginx/html yobasystems/alpine-nginx
Nginx logs (access and error logs) output to stdout
and stderr
Docker Compose example:
version: '2'
services:
webapp:
image: yobasystems/alpine-nginx
environment:
URL: www.example.co.uk
expose:
- "80"
- "443"
volumes:
- /app/www:/etc/nginx/html
domainname: www.example.co.uk
restart: always
Docker Compose example (Git):
version: '2'
services:
webapp:
image: yobasystems/alpine-nginx:git
environment:
URL: www.example.co.uk
REPO: https://[email protected]/yobasystems/default-index.git
expose:
- "80"
- "443"
volumes:
- /app/www:/etc/nginx/html
domainname: www.example.co.uk
restart: always
🔍 Image contents & Vulnerability analysis
PACKAGE NAME | PACKAGE VERSION | VULNERABILITIES |
---|