Sign inSign up

ghost/nightly

By ghost

•Updated about 6 hours ago

Nightly builds of Ghost from main, for testing upcoming changes. Not for production use.

Image
0

1.5K

ghost/nightly repository overview

⁠Ghost nightly

Nightly builds of Ghost⁠ from the main branch of TryGhost/Ghost⁠, for trying out upcoming features and testing themes, integrations and migrations ahead of a release.

Warning

Not for production use. These are untested builds of the main branch. They can include database migrations that change before the next release, with no supported way to roll back. Use a throwaway database.

For production, use the official Ghost image⁠.

⁠Tags

  • latest: the most recent nightly
  • YYYYMMDD: the build from that date (UTC), for pinning or rolling back

Builds run daily at 03:00 UTC from the newest main commit that passed CI. Each image is smoke-tested before it's published. The same images are on GHCR as ghcr.io/tryghost/ghost:nightly and ghcr.io/tryghost/ghost:nightly-YYYYMMDD.

Platforms: linux/amd64, linux/arm64.

⁠Usage

This image matches the next variant of the official image: Ghost is installed in /home/ghost, and content lives in the /home/ghost/content volume.

services:
  ghost:
    image: ghost/nightly:latest
    restart: unless-stopped
    ports:
      - 2368:2368
    environment:
      url: http://localhost:2368
      database__client: mysql
      database__connection__host: db
      database__connection__user: root
      database__connection__password: example
      database__connection__database: ghost
    volumes:
      - ghost:/home/ghost/content
    depends_on:
      - db

  db:
    image: mysql:8.0
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: example
    volumes:
      - db:/var/lib/mysql

volumes:
  ghost:
  db:

Any Ghost config option can be set with an environment variable, using __ for nesting (for example mail__transport). See Ghost's configuration docs⁠.

The container starts as root. The entrypoint gives the content volume to the ghost user (uid 1000), fills an empty volume with the default themes, and then runs Ghost as ghost. To skip that step, run with --user 1000:1000 and make sure the volume is writable by that uid.

⁠Moving from the official ghost image

The official image (before next) installs Ghost in /var/lib/ghost. Point your content mount at /home/ghost/content instead. If the container finds Ghost content at the old path, it refuses to start rather than booting an empty site.

⁠Source and issues

Tag summary

Content type

Image

Digest

sha256:dc72345ee…

Size

135.3 MB

Last updated

about 6 hours ago

docker pull ghost/nightly