Merge ~athos-ribeiro/ubuntu-docker-images:update-templates-21.04-makefile into ~valentinviennot/ubuntu-docker-images:update-templates-21.04

Proposed by Athos Ribeiro
Status: Merged
Merged at revision: 65a3b15045408f995f8fd6912de0da020c139534
Proposed branch: ~athos-ribeiro/ubuntu-docker-images:update-templates-21.04-makefile
Merge into: ~valentinviennot/ubuntu-docker-images:update-templates-21.04
Diff against target: 1415 lines (+53/-95)
7 files modified
Makefile (+35/-0)
README.md (+14/-3)
data/cassandra.yaml (+1/-1)
dev/null (+0/-88)
docs/docker.io/ubuntu/cassandra.md (+1/-1)
docs/public.ecr.aws/lts/cassandra.md (+1/-1)
docs/public.ecr.aws/ubuntu/cassandra.md (+1/-1)
Reviewer Review Type Date Requested Status
Valentin Viennot Approve
Sergio Durigan Junior Pending
Review via email: mp+408495@code.launchpad.net

Description of the change

Hi Valentin,

This MP is a proposal for adding a Makefile into the new OCI docs structure.

This also proposes a change for the build directory where the built docs artifacts should live, moving them from out* to a docs/REGISTRY/NAMESPACE structure.

Finally, while the last commit moves the files from out/* to the new structure, it also removed the files from out-lts, since I could not find the templates that generated those files.

To post a comment you must log in.
Revision history for this message
Athos Ribeiro (athos-ribeiro) wrote :

Note that I do have some remaining questions over the new structure:

1 - Should we remove all the documentation bits from the individial OCI repositories in favor of the new structure? i.e., remove data?* and README.md from those repositories.

2 - How about the HACKING files? Should we still maintain those in the individual repositories?

Revision history for this message
Sergio Durigan Junior (sergiodj) wrote :

On Monday, September 13 2021, Athos Ribeiro wrote:

> Note that I do have some remaining questions over the new structure:
>
> 1 - Should we remove all the documentation bits from the individial OCI repositories in favor of the new structure? i.e., remove data?* and README.md from those repositories.

Yes, I think that's the way to go here. AFAIU everything will now live
in the templates.git repository.

> 2 - How about the HACKING files? Should we still maintain those in the individual repositories?

My opinion is that the HACKING files belong to the git repositories.
Right now they are also generated using templates, but maybe we can make
them generic enough that they can be static files.

Thanks,

--
Sergio
GPG key ID: E92F D0B3 6B14 F1F4 D8E0 EB2F 106D A1C8 C3CB BF14

Revision history for this message
Sergio Durigan Junior (sergiodj) wrote :

Thanks for the MP, Athos.

I think this is OK, but I'd like to hear what Valentin has to say first.

Cheers.

Revision history for this message
Valentin Viennot (valentinviennot) wrote :

Thanks Athos! A few changes:

In the README:
- we can get rid of all the "Getting data from images repositories" instructions, as data?* files will now live in this repository.
- also, the .devcontainer could run the steps describe in the README for us :)

For the cassandra.yaml file:
- I think we need to change the version to remove the "rc" modifier as it wouldn't be part of the image tag. I also believe the 20.04 version is not an LTS, right?
- There's a "dead" link for the Kubernetes part, "TBD". This would need the absolute link to the proper configuration files.

With these changes this works well for me!

PS: I have a commit ready to fix the 3 first bullets but I don't know what to do with it. This is what my .devcontainer/Dockerfile looks like: (feel free to commit it yourself directly)
---
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.148.1/containers/python-3/.devcontainer/base.Dockerfile
ARG VARIANT="3"
FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT}

RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
    && apt-get -y install --no-install-recommends python3-mako python3-yaml

RUN cd /usr/bin && git clone https://github.com/misterw97/RenderDown \
    && pip3 --disable-pip-version-check --no-cache-dir install -r /usr/bin/RenderDown/requirements.txt \
    && rm -rf /tmp/pip-tmp
ENV RENDERDOWN /usr/bin/RenderDown/renderdown.py

review: Needs Fixing
Revision history for this message
Valentin Viennot (valentinviennot) wrote :

Oh, and what I've done for the README is that I removed the instructions related to "data" files and refactored the Installation section as following:
---
## Installing

### DevContainer

This repository contains a `.devcontainer` config folder to allow isolated-environment-controlled execution with [VScode](https://code.visualstudio.com/docs/remote/containers).

The DevContainer will provide you with a working environment out of the box. **You don't need any configuration.**

### Manually

```bash
git clone https://github.com/misterw97/RenderDown
sudo apt update -y && sudo apt install -y python3-mako python3-yaml
pip3 install -r RenderDown/requirements.txt
```

Revision history for this message
Athos Ribeiro (athos-ribeiro) wrote :

Thanks for the reviews, Sergio and Valentin.

Valentin, I fixed the 4th bullet by adding the URL for the Cassandra k8s deployment example. Would you like to rebase your remaining changes and merge them on top of my recent changes after merging this MP or would you rather me to go ahead and add those changes here?

Revision history for this message
Valentin Viennot (valentinviennot) wrote :

Happy to do a rebase if that's easier

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/Makefile b/Makefile
0new file mode 1006440new file mode 100644
index 0000000..a179a07
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,35 @@
1RENDERDOWN ?= ../RenderDown/renderdown.py
2PYTHON ?= python3
3BUILDDIR ?= docs
4DATADIR ?= data
5
6NS_DOCKERHUB = docker.io/ubuntu
7NS_ECR = public.ecr.aws/ubuntu
8NS_ECR_LTS = public.ecr.aws/lts
9
10README_TEMPLATE_DOCKERHUB = templates/README_DOCKERHUB.md
11README_TEMPLATE_ECR = templates/README_ECR.md
12README_TEMPLATE_ECR_LTS = templates/README_ECR_LTS.md
13
14all: all-doc
15
16all-doc: clean-doc dockerhub-docs ecr-docs ecr-lts-docs
17
18dockerhub-docs:
19 mkdir -p $(BUILDDIR)/$(NS_DOCKERHUB)
20 $(PYTHON) $(RENDERDOWN) $(README_TEMPLATE_DOCKERHUB) --outdir $(BUILDDIR)/$(NS_DOCKERHUB) --data $(DATADIR)
21
22ecr-docs:
23 mkdir -p $(BUILDDIR)/$(NS_ECR)
24 $(PYTHON) $(RENDERDOWN) $(README_TEMPLATE_ECR) --outdir $(BUILDDIR)/$(NS_ECR) --data $(DATADIR)
25
26ecr-lts-docs:
27 mkdir -p $(BUILDDIR)/$(NS_ECR_LTS)
28 $(PYTHON) $(RENDERDOWN) $(README_TEMPLATE_ECR_LTS) --outdir $(BUILDDIR)/$(NS_ECR_LTS) --data $(DATADIR)
29
30clean: clean-doc
31
32clean-doc:
33 rm -rf $(BUILDDIR)
34
35.PHONY: clean clean-doc all all-doc dockerhub-docs ecr-docs ecr-lts-docs
diff --git a/README.md b/README.md
index d9b66cb..f0402b2 100644
--- a/README.md
+++ b/README.md
@@ -35,8 +35,19 @@ python3 ./RenderDown/renderdown.py templates/README_DOCKERHUB.md --outdir out --
3535
36#### Useful commands36#### Useful commands
3737
38Create README files for all resigtries and namespaces:
39
40```bash
41make
42```
43
44Create a README file for a specific registry/namespace combination:
45
38```bash46```bash
39python3 ./RenderDown/renderdown.py templates/README_DOCKERHUB.md --outdir ./out/DockerHub/Ubuntu --data ./data47make dockerhub-docs
40python3 ./RenderDown/renderdown.py templates/README_ECR.md --outdir ./out/ECR/Ubuntu --data ./data48make ecr-docs
41python3 ./RenderDown/renderdown.py templates/README_ECR_LTS.md --outdir ./out/ECR/LTS --data ./data49make ecr-lts-docs
42```50```
51
52The documentation will be available under `docs`, respecting the image
53registry/namespace format.
diff --git a/data/cassandra.yaml b/data/cassandra.yaml
index bfdf4f7..7e640cb 100644
--- a/data/cassandra.yaml
+++ b/data/cassandra.yaml
@@ -61,5 +61,5 @@ debug:
61 - nothing61 - nothing
62microk8s:62microk8s:
63 deploy:63 deploy:
64 link: TBD64 link: https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/cassandra/plain/examples/cassandra-deployment.yml
65 access: You can now access the cassandra server on port 9042 (e.g., cqlsh localhost 9042)65 access: You can now access the cassandra server on port 9042 (e.g., cqlsh localhost 9042)
diff --git a/out/DockerHub/Ubuntu/apache2.md b/docs/docker.io/ubuntu/apache2.md
66similarity index 100%66similarity index 100%
67rename from out/DockerHub/Ubuntu/apache2.md67rename from out/DockerHub/Ubuntu/apache2.md
68rename to docs/docker.io/ubuntu/apache2.md68rename to docs/docker.io/ubuntu/apache2.md
diff --git a/out/DockerHub/Ubuntu/cassandra.md b/docs/docker.io/ubuntu/cassandra.md
69similarity index 96%69similarity index 96%
70rename from out/DockerHub/Ubuntu/cassandra.md70rename from out/DockerHub/Ubuntu/cassandra.md
71rename to docs/docker.io/ubuntu/cassandra.md71rename to docs/docker.io/ubuntu/cassandra.md
index e71ed9e..7ae1de4 100644
--- a/out/DockerHub/Ubuntu/cassandra.md
+++ b/docs/docker.io/ubuntu/cassandra.md
@@ -73,7 +73,7 @@ docker exec -it cassandra-container /bin/bash
73Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.73Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
7474
75Download75Download
76[cassandra-deployment.yml](TBD) and set `containers.cassandra.image` in `cassandra-deployment.yml` to your chosen channel tag (e.g. `ubuntu/cassandra:4.0-rc1-21.04_beta`), then:76[cassandra-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/cassandra/plain/examples/cassandra-deployment.yml) and set `containers.cassandra.image` in `cassandra-deployment.yml` to your chosen channel tag (e.g. `ubuntu/cassandra:4.0-rc1-21.04_beta`), then:
7777
78```sh78```sh
79kubectl apply -f cassandra-deployment.yml79kubectl apply -f cassandra-deployment.yml
diff --git a/out/DockerHub/Ubuntu/cortex.md b/docs/docker.io/ubuntu/cortex.md
80similarity index 100%80similarity index 100%
81rename from out/DockerHub/Ubuntu/cortex.md81rename from out/DockerHub/Ubuntu/cortex.md
82rename to docs/docker.io/ubuntu/cortex.md82rename to docs/docker.io/ubuntu/cortex.md
diff --git a/out/DockerHub/Ubuntu/grafana.md b/docs/docker.io/ubuntu/grafana.md
83similarity index 100%83similarity index 100%
84rename from out/DockerHub/Ubuntu/grafana.md84rename from out/DockerHub/Ubuntu/grafana.md
85rename to docs/docker.io/ubuntu/grafana.md85rename to docs/docker.io/ubuntu/grafana.md
diff --git a/out/DockerHub/Ubuntu/memcached.md b/docs/docker.io/ubuntu/memcached.md
86similarity index 100%86similarity index 100%
87rename from out/DockerHub/Ubuntu/memcached.md87rename from out/DockerHub/Ubuntu/memcached.md
88rename to docs/docker.io/ubuntu/memcached.md88rename to docs/docker.io/ubuntu/memcached.md
diff --git a/out/DockerHub/Ubuntu/mysql.md b/docs/docker.io/ubuntu/mysql.md
89similarity index 100%89similarity index 100%
90rename from out/DockerHub/Ubuntu/mysql.md90rename from out/DockerHub/Ubuntu/mysql.md
91rename to docs/docker.io/ubuntu/mysql.md91rename to docs/docker.io/ubuntu/mysql.md
diff --git a/out/DockerHub/Ubuntu/nginx.md b/docs/docker.io/ubuntu/nginx.md
92similarity index 100%92similarity index 100%
93rename from out/DockerHub/Ubuntu/nginx.md93rename from out/DockerHub/Ubuntu/nginx.md
94rename to docs/docker.io/ubuntu/nginx.md94rename to docs/docker.io/ubuntu/nginx.md
diff --git a/out/DockerHub/Ubuntu/postgres.md b/docs/docker.io/ubuntu/postgres.md
95similarity index 100%95similarity index 100%
96rename from out/DockerHub/Ubuntu/postgres.md96rename from out/DockerHub/Ubuntu/postgres.md
97rename to docs/docker.io/ubuntu/postgres.md97rename to docs/docker.io/ubuntu/postgres.md
diff --git a/out/DockerHub/Ubuntu/prometheus-alertmanager.md b/docs/docker.io/ubuntu/prometheus-alertmanager.md
98similarity index 100%98similarity index 100%
99rename from out/DockerHub/Ubuntu/prometheus-alertmanager.md99rename from out/DockerHub/Ubuntu/prometheus-alertmanager.md
100rename to docs/docker.io/ubuntu/prometheus-alertmanager.md100rename to docs/docker.io/ubuntu/prometheus-alertmanager.md
diff --git a/out/DockerHub/Ubuntu/prometheus.md b/docs/docker.io/ubuntu/prometheus.md
101similarity index 100%101similarity index 100%
102rename from out/DockerHub/Ubuntu/prometheus.md102rename from out/DockerHub/Ubuntu/prometheus.md
103rename to docs/docker.io/ubuntu/prometheus.md103rename to docs/docker.io/ubuntu/prometheus.md
diff --git a/out/DockerHub/Ubuntu/redis.md b/docs/docker.io/ubuntu/redis.md
104similarity index 100%104similarity index 100%
105rename from out/DockerHub/Ubuntu/redis.md105rename from out/DockerHub/Ubuntu/redis.md
106rename to docs/docker.io/ubuntu/redis.md106rename to docs/docker.io/ubuntu/redis.md
diff --git a/out/DockerHub/Ubuntu/telegraf.md b/docs/docker.io/ubuntu/telegraf.md
107similarity index 100%107similarity index 100%
108rename from out/DockerHub/Ubuntu/telegraf.md108rename from out/DockerHub/Ubuntu/telegraf.md
109rename to docs/docker.io/ubuntu/telegraf.md109rename to docs/docker.io/ubuntu/telegraf.md
diff --git a/out/ECR/LTS/apache2.md b/docs/public.ecr.aws/lts/apache2.md
110similarity index 100%110similarity index 100%
111rename from out/ECR/LTS/apache2.md111rename from out/ECR/LTS/apache2.md
112rename to docs/public.ecr.aws/lts/apache2.md112rename to docs/public.ecr.aws/lts/apache2.md
diff --git a/out/ECR/LTS/cassandra.md b/docs/public.ecr.aws/lts/cassandra.md
113similarity index 96%113similarity index 96%
114rename from out/ECR/LTS/cassandra.md114rename from out/ECR/LTS/cassandra.md
115rename to docs/public.ecr.aws/lts/cassandra.md115rename to docs/public.ecr.aws/lts/cassandra.md
index f44bd91..48ac796 100644
--- a/out/ECR/LTS/cassandra.md
+++ b/docs/public.ecr.aws/lts/cassandra.md
@@ -74,7 +74,7 @@ docker exec -it cassandra-container /bin/bash
74Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.74Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
7575
76Download76Download
77[cassandra-deployment.yml](TBD) and set `containers.cassandra.image` in `cassandra-deployment.yml` to your chosen channel tag (e.g. `public.ecr.aws/lts/cassandra:4.0-rc1-20.04_beta`), then:77[cassandra-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/cassandra/plain/examples/cassandra-deployment.yml) and set `containers.cassandra.image` in `cassandra-deployment.yml` to your chosen channel tag (e.g. `public.ecr.aws/lts/cassandra:4.0-rc1-20.04_beta`), then:
7878
79```sh79```sh
80kubectl apply -f cassandra-deployment.yml80kubectl apply -f cassandra-deployment.yml
diff --git a/out/ECR/LTS/cortex.md b/docs/public.ecr.aws/lts/cortex.md
81similarity index 100%81similarity index 100%
82rename from out/ECR/LTS/cortex.md82rename from out/ECR/LTS/cortex.md
83rename to docs/public.ecr.aws/lts/cortex.md83rename to docs/public.ecr.aws/lts/cortex.md
diff --git a/out/ECR/LTS/grafana.md b/docs/public.ecr.aws/lts/grafana.md
84similarity index 100%84similarity index 100%
85rename from out/ECR/LTS/grafana.md85rename from out/ECR/LTS/grafana.md
86rename to docs/public.ecr.aws/lts/grafana.md86rename to docs/public.ecr.aws/lts/grafana.md
diff --git a/out/ECR/LTS/memcached.md b/docs/public.ecr.aws/lts/memcached.md
87similarity index 100%87similarity index 100%
88rename from out/ECR/LTS/memcached.md88rename from out/ECR/LTS/memcached.md
89rename to docs/public.ecr.aws/lts/memcached.md89rename to docs/public.ecr.aws/lts/memcached.md
diff --git a/out/ECR/LTS/mysql.md b/docs/public.ecr.aws/lts/mysql.md
90similarity index 100%90similarity index 100%
91rename from out/ECR/LTS/mysql.md91rename from out/ECR/LTS/mysql.md
92rename to docs/public.ecr.aws/lts/mysql.md92rename to docs/public.ecr.aws/lts/mysql.md
diff --git a/out/ECR/LTS/nginx.md b/docs/public.ecr.aws/lts/nginx.md
93similarity index 100%93similarity index 100%
94rename from out/ECR/LTS/nginx.md94rename from out/ECR/LTS/nginx.md
95rename to docs/public.ecr.aws/lts/nginx.md95rename to docs/public.ecr.aws/lts/nginx.md
diff --git a/out/ECR/LTS/postgres.md b/docs/public.ecr.aws/lts/postgres.md
96similarity index 100%96similarity index 100%
97rename from out/ECR/LTS/postgres.md97rename from out/ECR/LTS/postgres.md
98rename to docs/public.ecr.aws/lts/postgres.md98rename to docs/public.ecr.aws/lts/postgres.md
diff --git a/out/ECR/LTS/prometheus-alertmanager.md b/docs/public.ecr.aws/lts/prometheus-alertmanager.md
99similarity index 100%99similarity index 100%
100rename from out/ECR/LTS/prometheus-alertmanager.md100rename from out/ECR/LTS/prometheus-alertmanager.md
101rename to docs/public.ecr.aws/lts/prometheus-alertmanager.md101rename to docs/public.ecr.aws/lts/prometheus-alertmanager.md
diff --git a/out/ECR/LTS/prometheus.md b/docs/public.ecr.aws/lts/prometheus.md
102similarity index 100%102similarity index 100%
103rename from out/ECR/LTS/prometheus.md103rename from out/ECR/LTS/prometheus.md
104rename to docs/public.ecr.aws/lts/prometheus.md104rename to docs/public.ecr.aws/lts/prometheus.md
diff --git a/out/ECR/LTS/redis.md b/docs/public.ecr.aws/lts/redis.md
105similarity index 100%105similarity index 100%
106rename from out/ECR/LTS/redis.md106rename from out/ECR/LTS/redis.md
107rename to docs/public.ecr.aws/lts/redis.md107rename to docs/public.ecr.aws/lts/redis.md
diff --git a/out/ECR/LTS/telegraf.md b/docs/public.ecr.aws/lts/telegraf.md
108similarity index 100%108similarity index 100%
109rename from out/ECR/LTS/telegraf.md109rename from out/ECR/LTS/telegraf.md
110rename to docs/public.ecr.aws/lts/telegraf.md110rename to docs/public.ecr.aws/lts/telegraf.md
diff --git a/out/ECR/Ubuntu/apache2.md b/docs/public.ecr.aws/ubuntu/apache2.md
111similarity index 100%111similarity index 100%
112rename from out/ECR/Ubuntu/apache2.md112rename from out/ECR/Ubuntu/apache2.md
113rename to docs/public.ecr.aws/ubuntu/apache2.md113rename to docs/public.ecr.aws/ubuntu/apache2.md
diff --git a/out/ECR/Ubuntu/cassandra.md b/docs/public.ecr.aws/ubuntu/cassandra.md
114similarity index 96%114similarity index 96%
115rename from out/ECR/Ubuntu/cassandra.md115rename from out/ECR/Ubuntu/cassandra.md
116rename to docs/public.ecr.aws/ubuntu/cassandra.md116rename to docs/public.ecr.aws/ubuntu/cassandra.md
index fd7aef9..e4ec4d4 100644
--- a/out/ECR/Ubuntu/cassandra.md
+++ b/docs/public.ecr.aws/ubuntu/cassandra.md
@@ -76,7 +76,7 @@ docker exec -it cassandra-container /bin/bash
76Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.76Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
7777
78Download78Download
79[cassandra-deployment.yml](TBD) and set `containers.cassandra.image` in `cassandra-deployment.yml` to your chosen channel tag (e.g. `public.ecr.aws/ubuntu/cassandra:4.0-rc1-20.04_beta`), then:79[cassandra-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/cassandra/plain/examples/cassandra-deployment.yml) and set `containers.cassandra.image` in `cassandra-deployment.yml` to your chosen channel tag (e.g. `public.ecr.aws/ubuntu/cassandra:4.0-rc1-20.04_beta`), then:
8080
81```sh81```sh
82kubectl apply -f cassandra-deployment.yml82kubectl apply -f cassandra-deployment.yml
diff --git a/out/ECR/Ubuntu/cortex.md b/docs/public.ecr.aws/ubuntu/cortex.md
83similarity index 100%83similarity index 100%
84rename from out/ECR/Ubuntu/cortex.md84rename from out/ECR/Ubuntu/cortex.md
85rename to docs/public.ecr.aws/ubuntu/cortex.md85rename to docs/public.ecr.aws/ubuntu/cortex.md
diff --git a/out/ECR/Ubuntu/grafana.md b/docs/public.ecr.aws/ubuntu/grafana.md
86similarity index 100%86similarity index 100%
87rename from out/ECR/Ubuntu/grafana.md87rename from out/ECR/Ubuntu/grafana.md
88rename to docs/public.ecr.aws/ubuntu/grafana.md88rename to docs/public.ecr.aws/ubuntu/grafana.md
diff --git a/out/ECR/Ubuntu/memcached.md b/docs/public.ecr.aws/ubuntu/memcached.md
89similarity index 100%89similarity index 100%
90rename from out/ECR/Ubuntu/memcached.md90rename from out/ECR/Ubuntu/memcached.md
91rename to docs/public.ecr.aws/ubuntu/memcached.md91rename to docs/public.ecr.aws/ubuntu/memcached.md
diff --git a/out/ECR/Ubuntu/mysql.md b/docs/public.ecr.aws/ubuntu/mysql.md
92similarity index 100%92similarity index 100%
93rename from out/ECR/Ubuntu/mysql.md93rename from out/ECR/Ubuntu/mysql.md
94rename to docs/public.ecr.aws/ubuntu/mysql.md94rename to docs/public.ecr.aws/ubuntu/mysql.md
diff --git a/out/ECR/Ubuntu/nginx.md b/docs/public.ecr.aws/ubuntu/nginx.md
95similarity index 100%95similarity index 100%
96rename from out/ECR/Ubuntu/nginx.md96rename from out/ECR/Ubuntu/nginx.md
97rename to docs/public.ecr.aws/ubuntu/nginx.md97rename to docs/public.ecr.aws/ubuntu/nginx.md
diff --git a/out/ECR/Ubuntu/postgres.md b/docs/public.ecr.aws/ubuntu/postgres.md
98similarity index 100%98similarity index 100%
99rename from out/ECR/Ubuntu/postgres.md99rename from out/ECR/Ubuntu/postgres.md
100rename to docs/public.ecr.aws/ubuntu/postgres.md100rename to docs/public.ecr.aws/ubuntu/postgres.md
diff --git a/out/ECR/Ubuntu/prometheus-alertmanager.md b/docs/public.ecr.aws/ubuntu/prometheus-alertmanager.md
101similarity index 100%101similarity index 100%
102rename from out/ECR/Ubuntu/prometheus-alertmanager.md102rename from out/ECR/Ubuntu/prometheus-alertmanager.md
103rename to docs/public.ecr.aws/ubuntu/prometheus-alertmanager.md103rename to docs/public.ecr.aws/ubuntu/prometheus-alertmanager.md
diff --git a/out/ECR/Ubuntu/prometheus.md b/docs/public.ecr.aws/ubuntu/prometheus.md
104similarity index 100%104similarity index 100%
105rename from out/ECR/Ubuntu/prometheus.md105rename from out/ECR/Ubuntu/prometheus.md
106rename to docs/public.ecr.aws/ubuntu/prometheus.md106rename to docs/public.ecr.aws/ubuntu/prometheus.md
diff --git a/out/ECR/Ubuntu/redis.md b/docs/public.ecr.aws/ubuntu/redis.md
107similarity index 100%107similarity index 100%
108rename from out/ECR/Ubuntu/redis.md108rename from out/ECR/Ubuntu/redis.md
109rename to docs/public.ecr.aws/ubuntu/redis.md109rename to docs/public.ecr.aws/ubuntu/redis.md
diff --git a/out/ECR/Ubuntu/telegraf.md b/docs/public.ecr.aws/ubuntu/telegraf.md
110similarity index 100%110similarity index 100%
111rename from out/ECR/Ubuntu/telegraf.md111rename from out/ECR/Ubuntu/telegraf.md
112rename to docs/public.ecr.aws/ubuntu/telegraf.md112rename to docs/public.ecr.aws/ubuntu/telegraf.md
diff --git a/out-lts/apache2.md b/out-lts/apache2.md
113deleted file mode 100644113deleted file mode 100644
index 743c3b2..0000000
--- a/out-lts/apache2.md
+++ /dev/null
@@ -1,90 +0,0 @@
1# Apache2 LTS Docker Image
2
3## LTS Docker Image Portfolio
4The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
5
6
7## About Apache2
8
9The Apache HTTP Server Project's goal is to build a secure, efficient and extensible HTTP server as standards-compliant open source software. The result has long been the number one web server on the Internet. Read more on the [apache2 website](https://httpd.apache.org/).
10
11
12## Tags and Architectures
13![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
14Up to 5 years free security maintenance `from lts/apache2`.
15
16![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
17Up to 10 years customer security maintenance `from store/canonical/apache2`.
18
19_Tags in italics are not available in lts/apache2 but are shown here for completeness._
20
21| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
22|---|---|---|---|---|
23| **`2.4-20.04_beta`**    | - | - | Apache2 2.4.41 | `amd64`, `arm64`, `ppc64el`, `s390x` |
24| _`track_risk`_ |
25
26Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
27
28## Usage
29
30If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
31
32Launch this image locally:
33
34```sh
35docker run -d --name apache2-container -e TZ=UTC -p 8080:80 lts/apache2:2.4-20.04_beta
36```
37Access your Apache2 server at `http://localhost:8080`.
38
39#### Parameters
40
41| Parameter | Description |
42|---|---|
43| `-e TZ=UTC` | Timezone. |
44| `-p 8080:80` | Expose Apache2 on `localhost:8080`. |
45| `-v /local/path/to/website:/var/www/html` | Mount and serve a local website. |
46| `-v /path/to/apache2.conf:/etc/apache2/apache2.conf` | Local [configuration file](https://httpd.apache.org/docs/2.4/) `apache2.conf` (try [this example](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/apache2/plain/examples/config/apache2.conf)). |
47
48
49#### Testing/Debugging
50
51To debug the container:
52
53```sh
54docker logs -f apache2-container
55```
56
57To get an interactive shell:
58
59```sh
60docker exec -it apache2-container /bin/bash
61```
62
63
64## Deploy with Kubernetes
65
66Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
67
68Download
69[apache2.conf](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/apache2/plain/examples/config/apache2.conf), [index.html](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/apache2/plain/examples/config/html/index.html) and
70[apache2-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/apache2/plain/examples/apache2-deployment.yml) and set `containers.apache2.image` in `apache2-deployment.yml` to your chosen channel tag (e.g. `lts/apache2:2.4-20.04_beta`), then:
71
72```sh
73kubectl create configmap apache2-config --from-file=apache2=apache2.conf --from-file=apache2-site=index.html
74kubectl apply -f apache2-deployment.yml
75```
76
77You will now be able to connect to the apache2 server on `http://localhost:30080`.
78
79## Bugs and feature requests
80
81If you find a bug in our image or want to request a specific feature, please file a bug here:
82
83[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
84
85Please title the bug "`apache2: <issue summary>`". Make sure to include the digest of the image you are using, from:
86
87```sh
88docker images --no-trunc --quiet lts/apache2:<tag>
89```
90
diff --git a/out-lts/cortex.md b/out-lts/cortex.md
91deleted file mode 1006440deleted file mode 100644
index ae779d0..0000000
--- a/out-lts/cortex.md
+++ /dev/null
@@ -1,95 +0,0 @@
1# Cortex LTS Docker Image
2
3## LTS Docker Image Portfolio
4The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
5
6
7## About Cortex
8
9Cortex provides horizontally scalable, highly available, multi-tenant, long term storage for Prometheus.
10
11* Horizontally scalable: Cortex can run across multiple machines in a cluster, exceeding the throughput and storage of a single machine. This enables you to send the metrics from multiple Prometheus servers to a single Cortex cluster and run "globally aggregated" queries across all data in a single place.
12* Highly available: When run in a cluster, Cortex can replicate data between machines. This allows you to survive machine failure without gaps in your graphs.
13* Multi-tenant: Cortex can isolate data and queries from multiple different independent Prometheus sources in a single cluster, allowing untrusted parties to share the same cluster.
14* Long term storage: Cortex supports Amazon DynamoDB, Google Bigtable, Cassandra, S3, GCS and Microsoft Azure for long term storage of metric data. This allows you to durably store data for longer than the lifetime of any single machine, and use this data for long term capacity planning.
15
16Read more on the [Cortex website](https://cortexmetrics.io/).
17
18
19## Tags and Architectures
20![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
21Up to 5 years free security maintenance `from lts/cortex`.
22
23![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
24Up to 10 years customer security maintenance `from store/canonical/cortex`.
25
26_Tags in italics are not available in lts/cortex but are shown here for completeness._
27
28| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
29|---|---|---|---|---|
30| _`track_risk`_ |
31
32Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
33
34## Usage
35
36If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
37
38Launch this image locally:
39
40```sh
41docker run -d --name cortex-container -e TZ=UTC -p 32709:9009 lts/cortex:1.4-20.04_beta
42```
43Access your Cortex server at `http://localhost:32709`.
44
45#### Parameters
46
47| Parameter | Description |
48|---|---|
49| `-e TZ=UTC` | Timezone. |
50| `-p 32709:9009` | Expose Cortex on `localhost:32709`. |
51| `-v /my/local/cortex.yaml:/etc/cortex/cortex.yaml` | Local [configuration file](https://cortexmetrics.io/docs/configuration/) `cortex.yaml` (try [this example](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/cortex/plain/oci/examples/config/cortex.yaml)). |
52
53
54#### Testing/Debugging
55
56To debug the container:
57
58```sh
59docker logs -f cortex-container
60```
61
62To get an interactive shell:
63
64```sh
65docker exec -it cortex-container /bin/bash
66```
67
68
69## Deploy with Kubernetes
70
71Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
72
73Download
74[cortex.yaml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/cortex/plain/oci/examples/config/cortex.yaml) and
75[cortex-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/cortex/plain/oci/examples/cortex-deployment.yml) and set `containers.cortex.image` in `cortex-deployment.yml` to your chosen channel tag (e.g. `lts/cortex:1.4-20.04_beta`), then:
76
77```sh
78kubectl create configmap cortex-config --from-file=main-config=cortex.yaml
79kubectl apply -f cortex-deployment.yml
80```
81
82You will now be able to connect to the Cortex server on `localhost:32709`.
83
84## Bugs and feature requests
85
86If you find a bug in our image or want to request a specific feature, please file a bug here:
87
88[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
89
90Please title the bug "`cortex: <issue summary>`". Make sure to include the digest of the image you are using, from:
91
92```sh
93docker images --no-trunc --quiet lts/cortex:<tag>
94```
95
diff --git a/out-lts/grafana.md b/out-lts/grafana.md
96deleted file mode 1006440deleted file mode 100644
index af4cee1..0000000
--- a/out-lts/grafana.md
+++ /dev/null
@@ -1,89 +0,0 @@
1# Grafana LTS Docker Image
2
3## LTS Docker Image Portfolio
4The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
5
6
7## About Grafana
8
9Grafana is a feature rich metrics dashboard and graph editor for Cloudwatch, Elasticsearch, Graphite, InfluxDB, OpenTSB, Prometheus, and Hosted Metrics. Read more on the [Grafana website](https://grafana.com/docs/).
10
11
12## Tags and Architectures
13![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
14Up to 5 years free security maintenance `from lts/grafana`.
15
16![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
17Up to 10 years customer security maintenance `from store/canonical/grafana`.
18
19_Tags in italics are not available in lts/grafana but are shown here for completeness._
20
21| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
22|---|---|---|---|---|
23| _`track_risk`_ |
24
25Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
26
27## Usage
28
29If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
30
31Launch this image locally:
32
33```sh
34docker run -d --name grafana-container -e TZ=UTC -p 30000:3000 lts/grafana:7.2-20.04_beta
35```
36Access your Grafana server at `localhost:30000`.
37
38#### Parameters
39
40| Parameter | Description |
41|---|---|
42| `-e TZ=UTC` | Timezone. |
43| `-p 30000:3000` | Expose Grafana on `localhost:30000`. |
44| `-v /path/to/grafana/provisioning/files/:/etc/grafana/provisioning/` | Pass a directory with files to provision a Grafana `datasource` and `dashboard` (see [documentation](https://grafana.com/docs/grafana/latest/administration/provisioning/)). |
45| `-v /path/to/persisted/data:/var/lib/grafana` | Persist data with a voulme instead of initializing a new database for each newly launched container. |
46
47
48#### Testing/Debugging
49
50To debug the container:
51
52```sh
53docker logs -f grafana-container
54```
55
56To get an interactive shell:
57
58```sh
59docker exec -it grafana-container /bin/bash
60```
61
62
63## Deploy with Kubernetes
64
65Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
66
67Download
68[datasource.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/grafana/plain/examples/config/datasource.yml), [dashboard.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/grafana/plain/examples/config/dashboard.yml), [system-stats-dashboard.json](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/grafana/plain/examples/config/system-stats-dashboard.json) and
69[grafana-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/grafana/plain/examples/grafana-deployment.yml) and set `containers.grafana.image` in `grafana-deployment.yml` to your chosen channel tag (e.g. `lts/grafana:7.2-20.04_beta`), then:
70
71```sh
72kubectl create configmap grafana-config --from-file=grafana-datasource=datasource.yml --from-file=grafana-dashboard-definition=dashboard.yml --from-file=grafana-dashboard=system-stats-dashboard.json
73kubectl apply -f grafana-deployment.yml
74```
75
76You will now be able to connect to the Grafana on `http://localhost:30000`.
77
78## Bugs and feature requests
79
80If you find a bug in our image or want to request a specific feature, please file a bug here:
81
82[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
83
84Please title the bug "`grafana: <issue summary>`". Make sure to include the digest of the image you are using, from:
85
86```sh
87docker images --no-trunc --quiet lts/grafana:<tag>
88```
89
diff --git a/out-lts/memcached.md b/out-lts/memcached.md
90deleted file mode 1006440deleted file mode 100644
index c33827e..0000000
--- a/out-lts/memcached.md
+++ /dev/null
@@ -1,119 +0,0 @@
1# Memcached LTS Docker Image
2
3## LTS Docker Image Portfolio
4The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
5
6
7## About Memcached
8
9Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering. It is a short-term memory for applications. Memcached allows to take memory from parts of a system where you have more than you need and make it accessible to areas where you have less than you need. Read more on the [memcached website](https://memcached.org/).
10
11
12## Tags and Architectures
13![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
14Up to 5 years free security maintenance `from lts/memcached`.
15
16![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
17Up to 10 years customer security maintenance `from store/canonical/memcached`.
18
19_Tags in italics are not available in lts/memcached but are shown here for completeness._
20
21| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
22|---|---|---|---|---|
23| **`1.5-20.04_beta`** &nbsp;&nbsp; | - | - | Memcached 1.5.22 | `amd64`, `arm64`, `ppc64el`, `s390x` |
24| _`track_risk`_ |
25
26Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
27
28## Usage
29
30If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
31
32Launch this image locally:
33
34```sh
35docker run -d --name memcached-container -e TZ=UTC lts/memcached:1.5-20.04_beta
36```
37
38#### Parameters
39
40| Parameter | Description |
41|---|---|
42| `-e TZ=UTC` | Timezone. |
43| `-e MEMCACHED_CACHE_SIZE=64MB` | Determines the size of the cache. |
44| `-e MEMCACHED_MAX_CONNECTIONS=1024` | Determines the maximum number of concurrent connections. |
45| `-e MEMCACHED_THREADS=4` | Determines the number of threads to process requests. |
46| `-e MEMCACHED_PASSWORD` | Define the password for the `root` user if another username is provided. By default the authentication is disabled but if this option is passed it becomes enabled. |
47| `-e MEMCACHED_USERNAME` | Define a new user. If this option is passed a password is needed to authenticate the new user. |
48| `-p 11211` | Memcached is exposed inside the container on port `11211`. |
49
50
51#### Testing/Debugging
52
53To debug the container:
54
55```sh
56docker logs -f memcached-container
57```
58
59To get an interactive shell:
60
61```sh
62docker exec -it memcached-container /bin/bash
63```
64
65<details>
66<summary>You can access the Memcached instance with telnet from another container (click to expand).</summary>
67
68```sh
69# Create a dedicated network
70$ docker network create memcached-network
71# Connect the main container to it
72$ docker network connect memcached-network memcached-container
73# Run an interactive container with the latest Ubuntu
74$ docker run -it --rm --name telnet --network memcached-network ubuntu bash
75# Install the telnet cli from within the container
76> apt update && apt install telnet -y
77# Connect to the memcached instance using telnet
78> telnet memcached-container 11211
79Trying 172.30.0.2...
80Connected to memcached.
81Escape character is '^]'.
82```
83From there you can run `memcached` commands, as documented in [their wiki](https://github.com/memcached/memcached/wiki/Commands).
84
85</details>
86
87```sh
88$ telnet memcached-container 11211
89```
90
91There are cases where one might want to pass some memcached command line flags that are not configurable via environment variables.
92In this case you can append the flags themselves or a shell script to the run command.
93
94
95## Deploy with Kubernetes
96
97Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
98
99Download
100[memcached-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/memcached/plain/examples/memcached-deployment.yml) and set `containers.memcached.image` in `memcached-deployment.yml` to your chosen channel tag (e.g. `lts/memcached:1.5-20.04_beta`), then:
101
102```sh
103kubectl apply -f memcached-deployment.yml
104```
105
106Memcached will be listening on port `31211` in your host.
107
108## Bugs and feature requests
109
110If you find a bug in our image or want to request a specific feature, please file a bug here:
111
112[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
113
114Please title the bug "`memcached: <issue summary>`". Make sure to include the digest of the image you are using, from:
115
116```sh
117docker images --no-trunc --quiet lts/memcached:<tag>
118```
119
diff --git a/out-lts/mysql.md b/out-lts/mysql.md
120deleted file mode 1006440deleted file mode 100644
index 6239da7..0000000
--- a/out-lts/mysql.md
+++ /dev/null
@@ -1,116 +0,0 @@
1# MySQL LTS Docker Image
2
3## LTS Docker Image Portfolio
4The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
5
6
7## About MySQL
8
9MySQL is a fast, stable and true multi-user, multi-threaded SQL database server. SQL (Structured Query Language) is the most popular database query language in the world. The main goals of MySQL are speed, robustness and ease of use. Read more on the [MySQL website](https://dev.mysql.com/doc/refman/8.0/en/).
10
11
12## Tags and Architectures
13![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
14Up to 5 years free security maintenance `from lts/mysql`.
15
16![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
17Up to 10 years customer security maintenance `from store/canonical/mysql`.
18
19_Tags in italics are not available in lts/mysql but are shown here for completeness._
20
21| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
22|---|---|---|---|---|
23| **`8.0-20.04_beta`** &nbsp;&nbsp; | - | - | MySQL 8.0.22 | `amd64`, `arm64`, `s390x` |
24| _`track_risk`_ |
25
26Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
27
28## Usage
29
30If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
31
32Launch this image locally:
33
34```sh
35docker run -d --name mysql-container -e TZ=UTC -p 30306:3306 -e MYSQL_ROOT_PASSWORD=My:S3cr3t/ lts/mysql:8.0-20.04_beta
36```
37Access your MySQL server at `localhost:30306`.
38
39#### Parameters
40
41| Parameter | Description |
42|---|---|
43| `-e TZ=UTC` | Timezone. |
44| `-e MYSQL_ROOT_PASSWORD=secret_for_root` | Set the password for the `root` user. This option is **mandatory** and **must not be empty**. |
45| `-e MYSQL_PASSWORD=secret` | Set the password for the `MYSQL_USER` user. |
46| `-e MYSQL_USER=john` | Create a new user with superuser privileges. This is used in conjunction with `MYSQL_PASSWORD`. |
47| `-e MYSQL_DATABASE=db_test` | Set the name of the default database. |
48| `-e MYSQL_ALLOW_EMPTY_PASSWORD=yes` | Set up a blank password for the `root` user. **This is not recommended to be used in production, make sure you know what you are doing**. |
49| `-e MYSQL_RANDOM_ROOT_PASSWORD=yes` | Generate a random initial password for the `root` user using `pwgen`. It will be printed in the logs, search for `GENERATED ROOT PASSWORD`. |
50| `-e MYSQL_ONETIME_PASSWORD=yes` | Set `root` user as experide once initialization is complete, forcing a password change on first login. |
51| `-e MYSQL_INITSB_SKIP_TZINFO=yes` | Timezone data is automatically loaded via entrypoint script, set this variable to any non-empty value to disable it. |
52| `-p 30306:3306` | Expose MySQL server on `localhost:30306`. |
53| `-v /path/to/data:/var/lib/mysql` | Persist data instead of initializing a new database every time you launch a new container. |
54| `-v /path/to/config/files/:/etc/mysql/mysql.conf.d/` | Local [configuration files](https://dev.mysql.com/doc/refman/8.0/en/mysql-command-options.html) (try this [example my.cnf](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/mysql/plain/examples/config/my.cnf)). |
55
56#### Initialization Scripts
57
58One can also add initialization scripts to their containers. This includes `*.sql`, `.sql.gz`, and `*.sh` scripts, and you just need to put them inside the `/docker-entrypoint-initdb.d` directory inside the container. After MySQL initialization is done and the default database and user are created, the scripts are executed in the following order:
59
60* Run any `*.sql` files in alphabetically order. By default the target database is specified via `MYSQL_DATABASE`.
61* Run any executable `*.sh` scripts in alphabetically order.
62* Source any non-executable `*.sh` scripts in alphabetically order.
63
64All of this is done before the MySQL service is started. Keep in mind if your database directory is not empty (contains pre-existing database) they will be left untouched.
65
66
67#### Testing/Debugging
68
69To debug the container:
70
71```sh
72docker logs -f mysql-container
73```
74
75To get an interactive shell:
76
77```sh
78docker exec -it mysql-container /bin/bash
79```
80
81This image also includes the `mysql` client for interactive container use:
82
83```sh
84$ docker network create mysql-network
85$ docker network connect mysql-network mysql-container
86$ docker run -it --rm --network mysql-network lts/mysql:8.0-20.04_beta mysql -hmysql-container -uroot -p
87```
88The password will be asked and you can enter `My:S3cr3t/`. Now, you are logged in and can enjoy your new instance.
89
90## Deploy with Kubernetes
91
92Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
93
94Download
95[my-custom.cnf](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/mysql/plain/examples/config/my-custom.cnf) and
96[mysql-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/mysql/plain/examples/mysql-deployment.yml) and set `containers.mysql.image` in `mysql-deployment.yml` to your chosen channel tag (e.g. `lts/mysql:8.0-20.04_beta`), then:
97
98```sh
99kubectl create configmap mysql-config --from-file=main-config=my-custom.cnf
100kubectl apply -f mysql-deployment.yml
101```
102
103You will now be able to connect to the MySQL server on `localhost:30306`.
104
105## Bugs and feature requests
106
107If you find a bug in our image or want to request a specific feature, please file a bug here:
108
109[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
110
111Please title the bug "`mysql: <issue summary>`". Make sure to include the digest of the image you are using, from:
112
113```sh
114docker images --no-trunc --quiet lts/mysql:<tag>
115```
116
diff --git a/out-lts/nginx.md b/out-lts/nginx.md
117deleted file mode 1006440deleted file mode 100644
index d837f3c..0000000
--- a/out-lts/nginx.md
+++ /dev/null
@@ -1,91 +0,0 @@
1# Nginx LTS Docker Image
2
3## LTS Docker Image Portfolio
4The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
5
6
7## About Nginx
8
9Nginx ("engine X") is a high-performance web and reverse proxy server created by Igor Sysoev. It can be used both as a standalone web server and as a proxy to reduce the load on back-end HTTP or mail servers. Read more on the [nginx website](https://www.nginx.com/).
10
11
12## Tags and Architectures
13![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
14Up to 5 years free security maintenance `from lts/nginx`.
15
16![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
17Up to 10 years customer security maintenance `from store/canonical/nginx`.
18
19_Tags in italics are not available in lts/nginx but are shown here for completeness._
20
21| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
22|---|---|---|---|---|
23| **`1.18-20.04_beta`** &nbsp;&nbsp; | - | - | Nginx 1.18.0 | `amd64`, `arm64`, `ppc64el`, `s390x` |
24| _`track_risk`_ |
25
26Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
27
28## Usage
29
30If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
31
32Launch this image locally:
33
34```sh
35docker run -d --name nginx-container -e TZ=UTC -p 8080:80 lts/nginx:1.18-20.04_beta
36```
37Access your Nginx server at `http://localhost:8080`.
38
39#### Parameters
40
41| Parameter | Description |
42|---|---|
43| `-e TZ=UTC` | Timezone. |
44| `-p 8080:80` | Expose Nginx on `localhost:8080`. |
45| `-v /local/path/to/website:/var/www/html` | Mount and serve a local website. |
46| `-v /path/to/conf.template:/etc/nginx/templates/conf.template` | Mount template files inside `/etc/nginx/templates`. They will be processed and the results will be placed at `/etc/nginx/conf.d`. (e.g. `listen ${NGINX_PORT};` will generate `listen 80;`). |
47| `-v /path/to/nginx.conf:/etc/nginx/nginx.conf` | Local [configuration file](https://nginx.org/en/docs/) `nginx.conf` (try [this example](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/nginx/plain/examples/config/nginx.conf)). |
48
49
50#### Testing/Debugging
51
52To debug the container:
53
54```sh
55docker logs -f nginx-container
56```
57
58To get an interactive shell:
59
60```sh
61docker exec -it nginx-container /bin/bash
62```
63
64
65## Deploy with Kubernetes
66
67Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
68
69Download
70[nginx.conf](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/nginx/plain/examples/config/nginx.conf), [index.html](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/nginx/plain/examples/config/html/index.html) and
71[nginx-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/nginx/plain/examples/nginx-deployment.yml) and set `containers.nginx.image` in `nginx-deployment.yml` to your chosen channel tag (e.g. `lts/nginx:1.18-20.04_beta`), then:
72
73```sh
74kubectl create configmap nginx-config --from-file=nginx=nginx.conf --from-file=nginx-site=index.html
75kubectl apply -f nginx-deployment.yml
76```
77
78You will now be able to connect to the nginx server on `http://localhost:31080`.
79
80## Bugs and feature requests
81
82If you find a bug in our image or want to request a specific feature, please file a bug here:
83
84[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
85
86Please title the bug "`nginx: <issue summary>`". Make sure to include the digest of the image you are using, from:
87
88```sh
89docker images --no-trunc --quiet lts/nginx:<tag>
90```
91
diff --git a/out-lts/postgres.md b/out-lts/postgres.md
92deleted file mode 1006440deleted file mode 100644
index 49c284b..0000000
--- a/out-lts/postgres.md
+++ /dev/null
@@ -1,115 +0,0 @@
1# Postgres LTS Docker Image
2
3## LTS Docker Image Portfolio
4The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
5
6
7## About Postgres
8
9PostgreSQL is a powerful, open source object-relational database system. It is fully ACID compliant, has full support for foreign keys, joins, views, triggers, and stored procedures (in multiple languages). It includes most SQL:2008 data types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and TIMESTAMP. It also supports storage of binary large objects, including pictures, sounds, or video. It has native programming interfaces for C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, among others, and exceptional documentation. Read more on the [PostgreSQL website](https://www.postgresql.org/docs/).
10
11
12## Tags and Architectures
13![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
14Up to 5 years free security maintenance `from lts/postgres`.
15
16![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
17Up to 10 years customer security maintenance `from store/canonical/postgres`.
18
19_Tags in italics are not available in lts/postgres but are shown here for completeness._
20
21| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
22|---|---|---|---|---|
23| **`12.4-20.04_beta`** &nbsp;&nbsp; | - | - | Postgres 12.4 | `amd64`, `arm64`, `s390x` |
24| _`track_risk`_ |
25
26Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
27
28## Usage
29
30If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
31
32Launch this image locally:
33
34```sh
35docker run -d --name postgres-container -e TZ=UTC -p 30432:5432 -e POSTGRES_PASSWORD=My:s3Cr3t/ lts/postgres:12.4-20.04_beta
36```
37Access your PostgreSQL server at `localhost:30432`.
38
39#### Parameters
40
41| Parameter | Description |
42|---|---|
43| `-e TZ=UTC` | Timezone. |
44| `-e POSTGRES_PASSWORD=secret` | Set the password for the superuser which is `postgres` by default. Bear in mind that to connect to the database in the same host the password is not needed but to access it via an external host (for instance another container) the password is needed. This option is **mandatory** and **must not be empty**. |
45| `-e POSTGRES_USER=john` | Create a new user with superuser privileges. This is used in conjunction with `POSTGRES_PASSWORD`. |
46| `-e POSTGRES_DB=db_test` | Set the name of the default database. |
47| `-e POSTGRES_INITDB_ARGS="--data-checksums"` | Pass arguments to the `postgres initdb` call. |
48| `-e POSTGRES_INITDB_WALDIR=/path/to/location` | Set the location of the Postgres transaction log. By default it is stored in a subdirectory of the main Postgres data folder (`PGDATA`). |
49| `-e POSTGRES_HOST_AUTH_METHOD=trust` | Set the `auth-method` for `host` connections for `all` databases, `all` users, and `all` addresses. The following will be added to the `pg_hba.conf` if this option is passed: `host all all all $POSTGRES_HOST_AUTH_METHOD`. |
50| `-e PGDATA=/path/to/location` | Set the location of the database files. The default is `/var/lib/postgresql/data`. |
51| `-p 30432:5432` | Expose Postgres on `localhost:30432`. |
52| `-v /path/to/postgresql.conf:/etc/postgresql/postgresql.conf` | Local [configuration file](https://www.postgresql.org/docs/12/index.html) `postgresql.conf` (try [this example](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/postgresql/plain/examples/config/postgresql.conf)). |
53| `-v /path/to/persisted/data:/var/lib/postgresql/data` | Persist data instead of initializing a new database every time you launch a new container. |
54
55#### Initialization Scripts
56
57One can also add initialization scripts to their containers. This includes `*.sql`, `.sql.gz`, and `*.sh` scripts, and you just need to put them inside the `/docker-entrypoint-initdb.d` directory inside the container. After Postgres initialization is done and the default database and user are created, the scripts are executed in the following order:
58
59* Run any `*.sql` files in alphabetically order. It will be executed with `POSTGRES_USER`.
60* Run any executable `*.sh` scripts in alphabetically order.
61* Source any non-executable `*.sh` scripts in alphabetically order.
62
63All of this is done before the Postgres service is started. Keep in mind if your `PGDATA` directory is not empty (contains pre-existing database) they will be left untouched.
64
65
66#### Testing/Debugging
67
68To debug the container:
69
70```sh
71docker logs -f postgres-container
72```
73
74To get an interactive shell:
75
76```sh
77docker exec -it postgres-container /bin/bash
78```
79
80This image also includes the `psql` client for interactive container use:
81
82```sh
83$ docker network create postgres-network
84$ docker network connect postgres-network postgres-container
85$ docker run -it --rm --network postgres-network lts/postgres:12.4-20.04_beta psql -h postgres-container -U postgres
86```
87The password will be asked and you can enter `My:s3Cr3t/`. Now, you are logged in and can enjoy your new instance.
88
89## Deploy with Kubernetes
90
91Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
92
93Download
94[postgresql.conf](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/postgresql/plain/examples/config/postgresql.conf) and
95[postgres-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/postgresql/plain/examples/postgres-deployment.yml) and set `containers.postgres.image` in `postgres-deployment.yml` to your chosen channel tag (e.g. `lts/postgres:12.4-20.04_beta`), then:
96
97```sh
98kubectl create configmap postgres-config --from-file=main-config=postgresql.conf
99kubectl apply -f postgres-deployment.yml
100```
101
102You will now be able to connect to the Postgres server on `localhost:30306`.
103
104## Bugs and feature requests
105
106If you find a bug in our image or want to request a specific feature, please file a bug here:
107
108[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
109
110Please title the bug "`postgres: <issue summary>`". Make sure to include the digest of the image you are using, from:
111
112```sh
113docker images --no-trunc --quiet lts/postgres:<tag>
114```
115
diff --git a/out-lts/prometheus-alertmanager.md b/out-lts/prometheus-alertmanager.md
116deleted file mode 1006440deleted file mode 100644
index 146a4b8..0000000
--- a/out-lts/prometheus-alertmanager.md
+++ /dev/null
@@ -1,89 +0,0 @@
1# Prometheus Alertmanager LTS Docker Image
2
3## LTS Docker Image Portfolio
4The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
5
6
7## About Prometheus Alertmanager
8
9The Alertmanager handles alerts sent by client applications such as the Prometheus server. It takes care of deduplicating, grouping, and routing them to the correct receiver integration such as email, PagerDuty, or OpsGenie. It also takes care of silencing and inhibition of alerts. Read more on the [Prometheus Alertmanager website](https://prometheus.io/docs/alerting/latest/alertmanager/).
10
11
12## Tags and Architectures
13![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
14Up to 5 years free security maintenance `from lts/prometheus-alertmanager`.
15
16![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
17Up to 10 years customer security maintenance `from store/canonical/prometheus-alertmanager`.
18
19_Tags in italics are not available in lts/prometheus-alertmanager but are shown here for completeness._
20
21| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
22|---|---|---|---|---|
23| _`track_risk`_ |
24
25Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
26
27## Usage
28
29If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
30
31Launch this image locally:
32
33```sh
34docker run -d --name prometheus-alertmanager-container -e TZ=UTC -p 30093:9093 lts/prometheus-alertmanager:0.21-20.04_beta
35```
36Access your Prometheus Alertmanager server at `localhost:30093`.
37
38#### Parameters
39
40| Parameter | Description |
41|---|---|
42| `-e TZ=UTC` | Timezone. |
43| `-p 30093:9093` | Expose Prometheus Alertmanager on `localhost:30093`. |
44| `-v /path/to/alertmanager.yml:/etc/prometheus/alertmanager.yml` | Local [configuration file](https://www.prometheus.io/docs/alerting/latest/configuration/) `alertmanager.yml` (try [this example](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/prometheus-alertmanager/plain/oci/examples/config/alertmanager.yml)). |
45| `-v /path/to/persisted/data:/alertmanager` | Persist data instead of initializing a new database for each newly launched container. **Important note**: the directory you will be using to persist the data needs to belong to `nogroup:nobody`. You can run `chown nogroup:nobody <path_to_persist_data>` before launching your container. |
46
47
48#### Testing/Debugging
49
50To debug the container:
51
52```sh
53docker logs -f prometheus-alertmanager-container
54```
55
56To get an interactive shell:
57
58```sh
59docker exec -it prometheus-alertmanager-container /bin/bash
60```
61
62
63## Deploy with Kubernetes
64
65Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
66
67Download
68[alertmanager.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/prometheus-alertmanager/plain/oci/examples/config/alertmanager.yml) and
69[prometheus-alertmanager-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/prometheus-alertmanager/plain/oci/examples/alertmanager-deployment.yml) and set `containers.prometheus-alertmanager.image` in `prometheus-alertmanager-deployment.yml` to your chosen channel tag (e.g. `lts/prometheus-alertmanager:0.21-20.04_beta`), then:
70
71```sh
72kubectl create configmap prometheus-alertmanager-config --from-file=alertmanager=alertmanager.yml
73kubectl apply -f prometheus-alertmanager-deployment.yml
74```
75
76You will now be able to connect to the Prometheus Alertmanager server on `localhost:30093`.
77
78## Bugs and feature requests
79
80If you find a bug in our image or want to request a specific feature, please file a bug here:
81
82[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
83
84Please title the bug "`prometheus-alertmanager: <issue summary>`". Make sure to include the digest of the image you are using, from:
85
86```sh
87docker images --no-trunc --quiet lts/prometheus-alertmanager:<tag>
88```
89
diff --git a/out-lts/prometheus.md b/out-lts/prometheus.md
90deleted file mode 1006440deleted file mode 100644
index 3c4066d..0000000
--- a/out-lts/prometheus.md
+++ /dev/null
@@ -1,89 +0,0 @@
1# Prometheus LTS Docker Image
2
3## LTS Docker Image Portfolio
4The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
5
6
7## About Prometheus
8
9Prometheus is a systems and service monitoring system. It collects metrics from configured targets at given intervals, evaluates rule expressions, displays the results, and can trigger alerts if some condition is observed to be true. Read more on the [Prometheus website](https://prometheus.io/).
10
11
12## Tags and Architectures
13![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
14Up to 5 years free security maintenance `from lts/prometheus`.
15
16![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
17Up to 10 years customer security maintenance `from store/canonical/prometheus`.
18
19_Tags in italics are not available in lts/prometheus but are shown here for completeness._
20
21| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
22|---|---|---|---|---|
23| _`track_risk`_ |
24
25Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
26
27## Usage
28
29If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
30
31Launch this image locally:
32
33```sh
34docker run -d --name prometheus-container -e TZ=UTC -p 30090:9090 lts/prometheus:2.20-20.04_beta
35```
36Access your Prometheus server at `localhost:30090`.
37
38#### Parameters
39
40| Parameter | Description |
41|---|---|
42| `-e TZ=UTC` | Timezone. |
43| `-p 30090:9090` | Expose Prometheus server on `localhost:30090`. |
44| `-v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml` | Local [configuration file](https://prometheus.io/docs/prometheus/2.20/configuration/configuration/) `prometheus.yml` (try [this example](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/prometheus/plain/oci/examples/config/prometheus.yml)). |
45| `-v /path/to/alerts.yml:/etc/prometheus/alerts.yml` | Local [alert configuration file](https://prometheus.io/docs/prometheus/2.20/configuration/configuration/) `alerts.yml` (try [this example](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/prometheus/plain/oci/examples/config/alerts.yml)). |
46
47
48#### Testing/Debugging
49
50To debug the container:
51
52```sh
53docker logs -f prometheus-container
54```
55
56To get an interactive shell:
57
58```sh
59docker exec -it prometheus-container /bin/bash
60```
61
62
63## Deploy with Kubernetes
64
65Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
66
67Download
68[prometheus.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/prometheus/plain/oci/examples/config/prometheus.yml), [alerts.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/prometheus/plain/oci/examples/config/alerts.yml) and
69[prometheus-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/prometheus/plain/oci/examples/prometheus-deployment.yml) and set `containers.prometheus.image` in `prometheus-deployment.yml` to your chosen channel tag (e.g. `lts/prometheus:2.20-20.04_beta`), then:
70
71```sh
72kubectl create configmap prometheus-config --from-file=prometheus=prometheus.yml --from-file=prometheus-alerts=alerts.yml
73kubectl apply -f prometheus-deployment.yml
74```
75
76You will now be able to connect to the Prometheus on `http://localhost:30090`.
77
78## Bugs and feature requests
79
80If you find a bug in our image or want to request a specific feature, please file a bug here:
81
82[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
83
84Please title the bug "`prometheus: <issue summary>`". Make sure to include the digest of the image you are using, from:
85
86```sh
87docker images --no-trunc --quiet lts/prometheus:<tag>
88```
89
diff --git a/out-lts/redis.md b/out-lts/redis.md
90deleted file mode 1006440deleted file mode 100644
index b4b7fda..0000000
--- a/out-lts/redis.md
+++ /dev/null
@@ -1,109 +0,0 @@
1# Redis LTS Docker Image
2
3## LTS Docker Image Portfolio
4The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
5
6
7## About Redis
8
9Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster. Read more on the [Redis website](https://redis.io/topics/introduction).
10
11
12## Tags and Architectures
13![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
14Up to 5 years free security maintenance `from lts/redis`.
15
16![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
17Up to 10 years customer security maintenance `from store/canonical/redis`.
18
19_Tags in italics are not available in lts/redis but are shown here for completeness._
20
21| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
22|---|---|---|---|---|
23| _`track_risk`_ |
24
25Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
26
27## Usage
28
29If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
30
31Launch this image locally:
32
33```sh
34docker run -d --name redis-container -e TZ=UTC -p 30073:6379 -e REDIS_PASSWORD=mypassword lts/redis:5.0-20.04_beta
35```
36Access your Redis server at `localhost:30073`.
37
38#### Parameters
39
40| Parameter | Description |
41|---|---|
42| `-e TZ=UTC` | Timezone. |
43| `-e ALLOW_EMPTY_PASSWORD` | Set to `yes` to allow connections to `redis-server` without a password. **This setting is not recommended in production environments**. |
44| `-e REDIS_PASSWORD` | Set the desired password to be used. |
45| `-e REDIS_RANDOM_PASSWORD` | Set this variable to `1` if you would like the entrypoint script to generate a random password for you. You will be able to see the generated password in the logs (`docker logs`). |
46| `-e REDIS_ALLOW_REMOTE_CONNECTIONS=yes` | Set to `no` to disallow remote connections to `redis-server` (i.e., make `redis-server` listen to `127.0.0.1` only). |
47| `-e REDIS_EXTRA_FLAGS` | Specify extra flags to be passed to `redis-server` when initializing it. |
48| `-p 30073:6379` | Expose redis on `localhost:30073`. |
49| `-v /path/to/redis.conf:/etc/redis/redis.conf` | Local [configuration file](https://redis.io/topics/config) `redis.conf` (try [this example](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/redis/plain/examples/config/redis.conf)). |
50
51
52#### Testing/Debugging
53
54To debug the container:
55
56```sh
57docker logs -f redis-container
58```
59
60To get an interactive shell:
61
62```sh
63docker exec -it redis-container /bin/bash
64```
65
66This image also includes the `redis-cli` client for interactive container use:
67
68```sh
69$ docker network create redis-network
70$ docker network connect redis-network redis-container
71$ docker run -it --rm --network redis-network lts/redis:5.0-20.04_beta redis-cli -h redis-container
72```
73Now you can:
74```
75redis:6379> AUTH mypassword
76OK
77redis:6379> PING
78PONG
79redis:6379>
80
81```
82
83## Deploy with Kubernetes
84
85Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
86
87Download
88[redis.conf](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/redis/plain/examples/config/redis.conf) and
89[redis-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/redis/plain/examples/redis-deployment.yml) and set `containers.redis.image` in `redis-deployment.yml` to your chosen channel tag (e.g. `lts/redis:5.0-20.04_beta`), then:
90
91```sh
92kubectl create configmap redis-config --from-file=redis=redis.conf
93kubectl apply -f redis-deployment.yml
94```
95
96You will now be able to connect to the Redis server on `localhost:30073`.
97
98## Bugs and feature requests
99
100If you find a bug in our image or want to request a specific feature, please file a bug here:
101
102[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
103
104Please title the bug "`redis: <issue summary>`". Make sure to include the digest of the image you are using, from:
105
106```sh
107docker images --no-trunc --quiet lts/redis:<tag>
108```
109
diff --git a/out-lts/telegraf.md b/out-lts/telegraf.md
110deleted file mode 1006440deleted file mode 100644
index 778a1e4..0000000
--- a/out-lts/telegraf.md
+++ /dev/null
@@ -1,88 +0,0 @@
1# Telegraf LTS Docker Image
2
3## LTS Docker Image Portfolio
4The [LTS Docker Image Portfolio](https://ubuntu.com/security/docker-images) are consistent, compliant, minimal and secure images with Extended Security Maintenance (ESM) commitments from Canonical. This repository is exempted from per-user rate limits.
5
6
7## About Telegraf
8
9Telegraf is an agent for collecting, processing, aggregating, and writing metrics. Design goals are to have a minimal memory footprint with a plugin system so that developers in the community can easily add support for collecting metrics. Read more on the [Telegraf website](https://www.influxdata.com/time-series-platform/telegraf/).
10
11
12## Tags and Architectures
13![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17)
14Up to 5 years free security maintenance `from lts/telegraf`.
15
16![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17)
17Up to 10 years customer security maintenance `from store/canonical/telegraf`.
18
19_Tags in italics are not available in lts/telegraf but are shown here for completeness._
20
21| Channel Tag | ![LTS](https://assets.ubuntu.com/v1/0a5ff561-LTS%402x.png?h=17) until | ![ESM](https://assets.ubuntu.com/v1/572f3fbd-ESM%402x.png?h=17) until | Currently | Architectures |
22|---|---|---|---|---|
23| _`track_risk`_ |
24
25Channel tag shows the most stable channel for that track ordered `stable`, `candidate`, `beta`, `edge`. More risky channels are always implicitly available. So if `beta` is listed, you can also pull `edge`. If `candidate` is listed, you can pull beta and edge. When `stable` is listed, all four are available. Images are guaranteed to progress through the sequence `edge`, `beta`, `candidate` before `stable`.
26
27## Usage
28
29If your usage includes redistribution, please [contact Canonical](https://ubuntu.com/security/docker-images#get-in-touch).
30
31Launch this image locally:
32
33```sh
34docker run -d --name telegraf-container -e TZ=UTC -p 30273:9273 lts/telegraf:1.15-20.04_beta
35```
36Access your Telegraf server at `localhost:30273`.
37
38#### Parameters
39
40| Parameter | Description |
41|---|---|
42| `-e TZ=UTC` | Timezone. |
43| `-p 30273:9273` | Expose Telegraf on `localhost:30273`. |
44| `-v /path/to/telegraf.conf:/etc/telegraf/telegraf.conf` | Local [configuration file](https://docs.influxdata.com/telegraf/) `telegraf.conf` (try [this example](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/telegraf/plain/examples/config/telegraf.conf)). |
45
46
47#### Testing/Debugging
48
49To debug the container:
50
51```sh
52docker logs -f telegraf-container
53```
54
55To get an interactive shell:
56
57```sh
58docker exec -it telegraf-container /bin/bash
59```
60
61
62## Deploy with Kubernetes
63
64Works with any Kubernetes; if you don't have one, we recommend you [install MicroK8s](https://microk8s.io/) and `microk8s.enable dns storage` then `snap alias microk8s.kubectl kubectl`.
65
66Download
67[telegraf.conf](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/telegraf/plain/examples/config/telegraf.conf) and
68[telegraf-deployment.yml](https://git.launchpad.net/~canonical-server/ubuntu-docker-images/+git/telegraf/plain/examples/telegraf-deployment.yml) and set `containers.telegraf.image` in `telegraf-deployment.yml` to your chosen channel tag (e.g. `lts/telegraf:1.15-20.04_beta`), then:
69
70```sh
71kubectl create configmap telegraf-config --from-file=main-config=telegraf.conf
72kubectl apply -f telegraf-deployment.yml
73```
74
75You will now be able to connect to the Telegraf server on `localhost:30073`.
76
77## Bugs and feature requests
78
79If you find a bug in our image or want to request a specific feature, please file a bug here:
80
81[https://bugs.launchpad.net/ubuntu-docker-images/+filebug](https://bugs.launchpad.net/ubuntu-docker-images/+filebug)
82
83Please title the bug "`telegraf: <issue summary>`". Make sure to include the digest of the image you are using, from:
84
85```sh
86docker images --no-trunc --quiet lts/telegraf:<tag>
87```
88

Subscribers

People subscribed via source and target branches