|
| 1 | +--- |
| 2 | +author: Centurio |
| 3 | +title: "Update Acme.sh Docker Container" |
| 4 | +date: 2025-04-27T21:01:40+02:00 |
| 5 | +categories: |
| 6 | +- Linux |
| 7 | +- Raspberry Pi |
| 8 | +tags: |
| 9 | +- linux |
| 10 | +- acme |
| 11 | +--- |
| 12 | +# Introduction |
| 13 | +I'm using [Diun](https://github.com/crazy-max/diun) to be notified about outdated Docker container. Today I was notified about an outstanding update for [acme.sh](https://github.com/acmesh-official/acme.sh). I'm using acme in various variants but this container was running on my Synology, outside the management provided by [Dockge](https://github.com/louislam/dockge), so I had to update the container manually. |
| 14 | + |
| 15 | +# Update procedure |
| 16 | +Login to your Host via SSH and become root. Update to the latest image by using `docker pull neilpang/acme.sh`. Here's an example call from my machine: |
| 17 | + |
| 18 | +```bash |
| 19 | +ash-4.4# docker pull neilpang/acme.sh |
| 20 | +Using default tag: latest |
| 21 | +latest: Pulling from neilpang/acme.sh |
| 22 | +f18232174bc9: Already exists |
| 23 | +a02477d504ae: Pull complete |
| 24 | +cdbb199096b6: Pull complete |
| 25 | +e84b361f958b: Pull complete |
| 26 | +d2ab1c727d8c: Pull complete |
| 27 | +b17b2bc9b3ea: Pull complete |
| 28 | +ec66d11b3eb8: Pull complete |
| 29 | +166c8dec79a1: Pull complete |
| 30 | +99b492c2aef4: Pull complete |
| 31 | +6a45f468ca50: Pull complete |
| 32 | +Digest: sha256:1900e9b22a4859c6e1da3bb8184d5a129d63537502f9f9053b807dc2939c1e23 |
| 33 | +Status: Downloaded newer image for neilpang/acme.sh:latest |
| 34 | +docker.io/neilpang/acme.sh:latest |
| 35 | +``` |
| 36 | + |
| 37 | +Now you'll have to recreate the currently running container. You can check if your container is running by using `docker ps|grep acme`. Again an example output: |
| 38 | + |
| 39 | +```bash |
| 40 | +ash-4.4# docker ps|grep acme |
| 41 | +1144de4611aa 187c1f47ec28 "/entry.sh daemon" 15 months ago Up 2 weeks acme |
| 42 | +``` |
| 43 | + |
| 44 | +For the recreation you'll need to know how you'll originally started your container. I did this manually when I setup acme for the first time using [these instructions]({{< ref "/post/2023/10/12/configure-lets-encrypt-acme-with-ionos-api-in-openwrt" >}}). My only custom modification was that I'm referencing a volume to keep my certificates. |
| 45 | + |
| 46 | +You can now either stop, remove and recreate the container or stop, remove and recreate it in a docker-compose file. I've chosen the latter variant to spare me from future manual updates. My `docker-compose.yml` looks like this: |
| 47 | + |
| 48 | +```yaml |
| 49 | +services: |
| 50 | + acme: |
| 51 | + image: neilpang/acme.sh:latest |
| 52 | + container_name: acme |
| 53 | + restart: unless-stopped |
| 54 | + command: daemon |
| 55 | + volumes: |
| 56 | + - /volume1/docker/acme:/acme.sh |
| 57 | +networks: {} |
| 58 | +``` |
| 59 | +
|
| 60 | +Now I can just hit update in Dockge and I'm getting my container updated. |
| 61 | +
|
| 62 | +# Conclusion |
| 63 | +I have no idea why I did not move acme to a docker-compose file earlier. Updating it this way is way more comfortable. But the best thing about this update is probably that I've did migrate my setup to Dockge. |
0 commit comments