Welcome to mirror list, hosted at ThFree Co, Russian Federation.

README.md « docker « tools - github.com/certbot/certbot.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: f4b9c6de47f6c06be1c579d0335bad25aa6512f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Running Certbot in Docker 
=========================

Docker is an amazingly simple and quick way to obtain a certificate. However, this mode of operation is unable to install certificates automatically or configure your webserver, because our installer plugins cannot reach your webserver from inside the Docker container.
 
**Most users should install Certbot by following the installation instructions at https://certbot.eff.org/instructions. You should only use Docker if you are sure you know what you are doing (you understand [volumes](https://docs.docker.com/storage/volumes/)) and have a good reason to do so, such as following the [one service per container rule](https://docs.docker.com/config/containers/multi-service_container/).**

For more information, please read [Certbot - Running with Docker](https://certbot.eff.org/docs/install.html#running-with-docker).

Certbot-Docker project
======================

Goal
----

This project is used to publish a new version of the official Certbot Docker and related Certbot DNS plugins Dockers on DockerHub upon release of a new version of Certbot.
It leverages the AutoBuild features of DockerHub to coordinate this publication through a continous integration/deployment approach.

High-level behavior
-------------------

When a new version tag (eg. v0.35.0) is pushed to this repository, it triggers a new build in each DockerHub project, to construct and publish the new version of the Docker
containing the Certbot version corresponding to the pushed tag. For example, after following the instructions for v0.35.0 below, after a few minutes the DockerHub projects will contain a new tag "v0.35.0",
whose Docker contains Certbot v0.35.0.

Configuration
-------------

To set up the publication process, the target DockerHub project must be configured appropriately. There are two types of DockerHub projects to take into account:
* the Docker project for Certbot core features (eg. certbot/certbot)
* a Docker project for Certbot DNS plugins (eg. certbot/dns-rfc2136)

1) Define a GitHub user with push rights to the current GIT repository.
2) Create the DockerHub project if necessary.
3) Activate the AutoBuild feature, using the current GIT repository as source (eg. https://github.com/certbot-docker/certbot-docker.git) and the user defined in 1).
4) Define a unique tag build rule in AutoBuild configuration:

    _For a Certbot core Docker_ -> Source: `/^(v[0-9.]+).*$/`, Tag: `{\1}`, Dockerfile: `Dockerfile`, Build context: `/core`

    _For a Certbot DNS plugin Docker_ -> Source: `/^(v[0-9.]+).*$/`, Tag: `{\1}`, Dockerfile: `Dockerfile`, Build context: `/plugin`

Publication worfklow
-------------------

Assuming the version to publish is `v0.35.0`

1) Clone this repository locally, check out branch `master`, and ensure the workspace is clean.
2) (Optional) Execute `./build.sh v0.35.0` to test the Docker builds.
3) Execute `./deploy.sh v0.35.0` to trigger the publication of all Dockers with version `v0.35.0`.

Scripts usage
-------------

```
./build.sh [VERSION]
```

This script will locally build all Dockers for the given version using the same runtime as DockerHub.
This can be used to test the build process before invoking the actual publication workflow.

```
./deploy.sh [VERSION]
```

This script will trigger the publication of all Dockers for the given version to DockerHub. To do so, this script will:
- update the relevant `README.md` files that will be used as descriptions in the DockerHub repositories,
- locally commit the modifications,
- tag this commit with the given version,
- push this tag and the updated `master` branch.

Assuming the version to publish is `v0.35.0`, the following docker images will be created at DockerHub.

- certbot/certbot:v0.35.0 *(amd64 architecture)*
- certbot/certbot:amd64-v0.35.0
- certbot/certbot:arm32v6-v0.35.0
- certbot/certbot:arm64v8-v0.35.0
- certbot/certbot:latest *(amd64 architecture)*
- certbot/certbot:amd64-latest
- certbot/certbot:arm32v6-latest
- certbot/certbot:arm64v8-latest