Skip to content

Commit 4aecb8f

Browse files
Run update.sh
1 parent 498586b commit 4aecb8f

1 file changed

Lines changed: 40 additions & 2 deletions

File tree

ghost/README.md

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,13 @@ WARNING:
2424

2525
# Supported tags and respective `Dockerfile` links
2626

27-
- [`6.60.0-bookworm`, `6.60.0`, `6.60-bookworm`, `6.60`, `6-bookworm`, `6`, `bookworm`, `latest`](https://github.com/TryGhost/docker-library-ghost/blob/4a9626af1d9f6a8f903ab6246fda29e56dcf106f/6/bookworm/Dockerfile)
27+
- [`6.61.0-bookworm`, `6.61.0`, `6.61-bookworm`, `6.61`, `6-bookworm`, `6`, `bookworm`, `latest`](https://github.com/TryGhost/docker-library-ghost/blob/653aed98404d4e3428aa09a77347a2d3d7d775f2/6/bookworm/Dockerfile)
2828

29-
- [`6.60.0-alpine3.23`, `6.60.0-alpine`, `6.60-alpine3.23`, `6.60-alpine`, `6-alpine3.23`, `6-alpine`, `alpine3.23`, `alpine`](https://github.com/TryGhost/docker-library-ghost/blob/4a9626af1d9f6a8f903ab6246fda29e56dcf106f/6/alpine3.23/Dockerfile)
29+
- [`6.61.0-alpine3.23`, `6.61.0-alpine`, `6.61-alpine3.23`, `6.61-alpine`, `6-alpine3.23`, `6-alpine`, `alpine3.23`, `alpine`](https://github.com/TryGhost/docker-library-ghost/blob/653aed98404d4e3428aa09a77347a2d3d7d775f2/6/alpine3.23/Dockerfile)
30+
31+
- [`6.61.0-next-bookworm`, `6.61.0-next`, `6.61-next-bookworm`, `6.61-next`, `6-next-bookworm`, `6-next`, `next-bookworm`, `next`](https://github.com/TryGhost/docker-library-ghost/blob/653aed98404d4e3428aa09a77347a2d3d7d775f2/6-next/bookworm/Dockerfile)
32+
33+
- [`6.61.0-next-alpine3.23`, `6.61.0-next-alpine`, `6.61-next-alpine3.23`, `6.61-next-alpine`, `6-next-alpine3.23`, `6-next-alpine`, `next-alpine3.23`, `next-alpine`](https://github.com/TryGhost/docker-library-ghost/blob/653aed98404d4e3428aa09a77347a2d3d7d775f2/6-next/alpine3.23/Dockerfile)
3034

3135
# Quick reference (cont.)
3236

@@ -132,6 +136,40 @@ $ docker exec <container-id> node --version
132136

133137
While the Docker images do have Ghost-CLI available and do use some of its commands to set up the base Ghost image, many of the other Ghost-CLI commands won't work correctly, and really aren't designed/intended to. For more info see [docker-library/ghost#156 (comment)](https://github.com/docker-library/ghost/issues/156#issuecomment-428159861)
134138

139+
Ghost-CLI is not included in the `next` variant at all (see below).
140+
141+
## The `next` variant
142+
143+
The `next` tags (`ghost:next`, `ghost:6-next`, `ghost:next-alpine`, plus fully qualified variants such as `ghost:6.61.0-next-alpine3.23`) are a preview of the image that will become the standard `ghost` image in **Ghost 7.0**. They track the same stable upstream Ghost releases as the default tags; what differs is how the image is built and laid out, not which version of Ghost is inside. The `next` tags never carry `latest`.
144+
145+
When Ghost 7.0 ships, this layout becomes the plain `ghost:<version>` image and the `next` tags go away, so trying `next` now is the way to find breakage in your setup ahead of that switch.
146+
147+
### Differences from the default variant
148+
149+
- **Ghost is installed at `/home/ghost` instead of `/var/lib/ghost`**, so content lives at `/home/ghost/content`:
150+
151+
```console
152+
$ docker run -d \
153+
--name some-ghost \
154+
-e NODE_ENV=development \
155+
-e database__connection__filename='/home/ghost/content/data/ghost.db' \
156+
-p 3001:2368 \
157+
-v some-ghost-data:/home/ghost/content \
158+
ghost:next
159+
```
160+
161+
If a volume with existing Ghost content is still mounted at the old `/var/lib/ghost/content`, the container refuses to start rather than quietly booting an empty site alongside it; an empty mount at the old path only prints a warning. Nothing at the old path is modified either way.
162+
163+
- **No Ghost-CLI.** Ghost is installed from the tarball attached to its GitHub release, using the lockfile shipped in that tarball, rather than through `ghost install`. The `ghost` command is not present in the image. All configuration is still done with environment variables as described above.
164+
165+
- **Ghost is at the root of the install directory**, not in a `current/` subdirectory, and the default command is `node index.js` rather than `node current/index.js`.
166+
167+
- **Ghost runs as the `ghost` user** rather than `node`. It keeps uid/gid 1000, so existing bind mounts continue to work once they point at the new path.
168+
169+
- **Configuration ships with the image.** `config.production.json` is a file baked into the image instead of being generated at build time by Ghost-CLI. It sets the same defaults, minus the Ghost-CLI-only `process` key, and every value remains overridable via `__` environment variables.
170+
171+
- **Smaller runtime image.** The build doesn't include Ghost-CLI and ships a pruned Ghost install, so build toolchains, package manager caches, TypeScript sources and vendored C/C++ are not shipped.
172+
135173
## Production mode
136174

137175
To run Ghost for production you'll also need to be running with MySQL 8, https, and a reverse proxy configured with appropriate `X-Forwarded-For`, `X-Forwarded-Host`, and `X-Forwarded-Proto` (`https`) headers.

0 commit comments

Comments
 (0)