Implemente el sistema de administración de contenido de código abierto Ghost en el entorno Docker
1. Introducción a Fantasma
1.1 Introducción a Fantasma
Ghost es un CMS (Content Management System) gratuito y de código abierto para blogs, publicaciones y sitios de contenido, escrito completamente en JavaScript. Las principales características de Ghost son la facilidad de uso, alta escalabilidad, hermoso diseño y excelente rendimiento.
1.2 Características de Fantasma
-
Facilidad de uso: la interfaz de usuario de Ghost es muy simple e intuitiva, por lo que es muy fácil de usar. Proporciona una experiencia de escritura fácil que le permite concentrarse en escribir.
-
Extensible: Ghost proporciona una potente API que permite a los desarrolladores ampliar fácilmente su funcionalidad e integrarla con otras aplicaciones.
-
Hermoso diseño: Ghost tiene un diseño muy hermoso y elegante, y te ofrece una variedad de temas y opciones de personalización para satisfacer tus necesidades.
-
Rendimiento superior: el rendimiento de Ghost es muy bueno porque se basa en Node.js, utiliza E/S sin bloqueo y puede manejar una gran cantidad de solicitudes y conexiones simultáneas.
2. Introducción al entorno local
2.1 Planificación Ambiental Local
Esta práctica es un entorno de prueba personal y la versión del sistema operativo es centos7.6.
nombre de host | dirección IP | versión del sistema operativo | Versión acoplable |
---|---|---|---|
jeven | 192.168.3.166 | cien 7.6 | 20.10.17 |
2.2 Introducción a esta práctica
1. Este entorno de implementación de práctica es un entorno de prueba personal, utilícelo con precaución en el entorno de producción
2. Implementó correctamente el sistema de gestión de contenido de código abierto Ghost en el entorno Docker.
3. Inspección ambiental local
3.1 Comprobar el estado del servicio de Docker
Compruebe si el servicio de Docker se ejecuta normalmente para asegurarse de que Docker se ejecuta normalmente.
[root@jeven ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2023-06-11 19:08:26 CST; 7h ago
Docs: https://docs.docker.com
Main PID: 11727 (dockerd)
Tasks: 10
Memory: 133.4M
3.2 Comprobar la versión de Docker
Comprobar la versión de Docker
[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c701
3.3 Comprobar la versión de redacción de la ventana acoplable
Verifique la versión de Docker compose, asegúrese de que la versión sea superior a 2.0.
[root@jeven ~]# docker compose version
Docker Compose version v2.6.0
4. Descarga la imagen del Fantasma
Descargue la imagen de Ghost en Docker Hub, la versión es la más reciente.
[root@jeven ~]# docker pull ghost
Using default tag: latest
latest: Pulling from library/ghost
72a69066d2fe: Already exists
24892ef5fd86: Pull complete
b352cb85f08b: Pull complete
d184ccfb32cc: Pull complete
a1aa0950435d: Pull complete
6af76194e172: Pull complete
6ecb9543cf3f: Pull complete
f5dc5f4a448f: Pull complete
c5c6987f6d28: Pull complete
Digest: sha256:8123a7eabc533746cfa7302c71b780e763ee292f92c10f44e12d08baa0b489f9
Status: Downloaded newer image for ghost:latest
docker.io/library/ghost:latest
5. Implementar el sistema de gestión de contenido de código abierto Ghost
5.1 Crear un directorio de datos
- Crear directorio de datos
mkdir -p /data/ghost
5.2 Crear un contenedor fantasma
- Use docker-cli para crear rápidamente contenedores Ghost
docker run -d \
--restart always \
--name ghost \
-p 2368:2368 \
-v /data/ghost:/var/lib/ghost/content \
-e NODE_ENV=development \
-e url=http://192.168.3.166:2368 \
ghost
- Autorización de directorio
chmod -R 777 /data/ghost/
- Reiniciar el contenedor fantasma
docker restart ghost
5.3 Comprobar el estado del contenedor Ghost
Verifique el estado del contenedor Ghost para asegurarse de que el contenedor se inicia normalmente.
[root@jeven ghost]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d9c108ddbd3c ghost "docker-entrypoint.s…" About a minute ago Up 26 seconds 0.0.0.0:2368->2368/tcp, :::2368->2368/tcp ghost
5.4 Comprobar el registro de ejecución del contenedor Ghost
Verifique el registro en ejecución del contenedor de Ghost para verificar si se informa algún error para asegurarse de que el servicio de Ghost se inicie normalmente.
[root@jeven ghost]# docker logs ghost
[2023-06-11 18:43:17] INFO Ghost is running in development...
[2023-06-11 18:43:17] INFO Listening on: 0.0.0.0:2368
[2023-06-11 18:43:17] INFO Url configured as: http://192.168.3.166:2368/
[2023-06-11 18:43:17] INFO Ctrl+C to shut down
[2023-06-11 18:43:17] INFO Ghost server started in 0.264s
[2023-06-11 18:43:17] WARN Database state requires initialisation.
[2023-06-11 18:43:17] INFO Creating table: posts
[2023-06-11 18:43:17] INFO Creating table: posts_meta
[2023-06-11 18:43:17] INFO Creating table: users
[2023-06-11 18:43:17] INFO Creating table: oauth
[2023-06-11 18:43:17] INFO Creating table: posts_authors
[2023-06-11 18:43:17] INFO Creating table: roles
[2023-06-11 18:43:17] INFO Creating table: roles_users
[2023-06-11 18:43:17] INFO Creating table: permissions
[2023-06-11 18:43:17] INFO Creating table: permissions_users
[2023-06-11 18:43:17] INFO Creating table: permissions_roles
[2023-06-11 18:43:17] INFO Creating table: settings
[2023-06-11 18:43:17] INFO Creating table: tags
[2023-06-11 18:43:17] INFO Creating table: posts_tags
[2023-06-11 18:43:17] INFO Creating table: invites
[2023-06-11 18:43:17] INFO Creating table: brute
[2023-06-11 18:43:17] INFO Creating table: sessions
[2023-06-11 18:43:17] INFO Creating table: integrations
[2023-06-11 18:43:17] INFO Creating table: webhooks
[2023-06-11 18:43:17] INFO Creating table: api_keys
[2023-06-11 18:43:17] INFO Creating table: mobiledoc_revisions
[2023-06-11 18:43:17] INFO Creating table: members
[2023-06-11 18:43:17] INFO Creating table: products
[2023-06-11 18:43:17] INFO Creating table: offers
[2023-06-11 18:43:17] INFO Creating table: benefits
[2023-06-11 18:43:17] INFO Creating table: products_benefits
[2023-06-11 18:43:17] INFO Creating table: members_products
[2023-06-11 18:43:17] INFO Creating table: members_payment_events
[2023-06-11 18:43:17] INFO Creating table: members_login_events
[2023-06-11 18:43:17] INFO Creating table: members_email_change_events
[2023-06-11 18:43:17] INFO Creating table: members_status_events
[2023-06-11 18:43:17] INFO Creating table: members_product_events
[2023-06-11 18:43:17] INFO Creating table: members_paid_subscription_events
[2023-06-11 18:43:17] INFO Creating table: labels
[2023-06-11 18:43:17] INFO Creating table: members_labels
[2023-06-11 18:43:17] INFO Creating table: members_stripe_customers
[2023-06-11 18:43:17] INFO Creating table: members_stripe_customers_subscriptions
[2023-06-11 18:43:17] INFO Creating table: offer_redemptions
[2023-06-11 18:43:17] INFO Creating table: members_subscribe_events
[2023-06-11 18:43:17] INFO Creating table: stripe_products
[2023-06-11 18:43:17] INFO Creating table: stripe_prices
[2023-06-11 18:43:17] INFO Creating table: actions
[2023-06-11 18:43:17] INFO Creating table: emails
[2023-06-11 18:43:17] INFO Creating table: email_batches
[2023-06-11 18:43:17] INFO Creating table: email_recipients
[2023-06-11 18:43:17] INFO Creating table: tokens
[2023-06-11 18:43:17] INFO Creating table: snippets
[2023-06-11 18:43:17] INFO Creating table: temp_member_analytic_events
[2023-06-11 18:43:17] INFO Creating table: custom_theme_settings
[2023-06-11 18:43:17] INFO Model: Product
[2023-06-11 18:43:17] INFO Model: Tag
[2023-06-11 18:43:17] INFO Model: Role
[2023-06-11 18:43:17] INFO Model: Permission
[2023-06-11 18:43:18] INFO Model: User
[2023-06-11 18:43:41] INFO Model: Post
[2023-06-11 18:43:41] INFO Model: Integration
[2023-06-11 18:43:42] INFO Relation: Role to Permission
[2023-06-11 18:43:42] INFO Relation: Post to Tag
[2023-06-11 18:43:42] INFO Relation: User to Role
[2023-06-11 18:43:42] INFO Database is in a ready state.
[2023-06-11 18:43:42] INFO Ghost database ready in 25.315s
[2023-06-11 18:43:43] INFO Ghost booted in 26.941s
[2023-06-11 18:43:43] INFO Adding offloaded job to the queue
[2023-06-11 18:43:43] INFO Scheduling job update-check at 9 33 8 * * *. Next run on: Mon Jun 12 2023 08:33:09 GMT+0000 (Coordinated Universal Time)
[2023-06-11 18:43:44] INFO Ghost URL Service Ready in 27.199s
[2023-06-11 18:44:44] WARN Ghost is shutting down
[2023-06-11 18:44:44] WARN Ghost has shut down
[2023-06-11 18:44:44] WARN Ghost was running for a minute
[2023-06-11 18:44:45] INFO Ghost is running in development...
[2023-06-11 18:44:45] INFO Listening on: 0.0.0.0:2368
[2023-06-11 18:44:45] INFO Url configured as: http://192.168.3.166:2368/
[2023-06-11 18:44:45] INFO Ctrl+C to shut down
[2023-06-11 18:44:45] INFO Ghost server started in 0.25s
[2023-06-11 18:44:45] INFO Database is in a ready state.
[2023-06-11 18:44:45] INFO Ghost database ready in 0.392s
[2023-06-11 18:44:46] INFO Ghost booted in 1.71s
[2023-06-11 18:44:46] INFO Adding offloaded job to the queue
[2023-06-11 18:44:46] INFO Scheduling job update-check at 3 38 15 * * *. Next run on: Mon Jun 12 2023 15:38:03 GMT+0000 (Coordinated Universal Time)
[2023-06-11 18:44:47] INFO Ghost URL Service Ready in 2.014s
6. Registrar cuenta fantasma
6.1 Visite la página de inicio de Ghost
Dirección de acceso: http://192.168.3.166:2368/
6.2 Ingrese a la página de registro de la cuenta
Dirección de acceso: http://192.168.3.166:2368/fantasma
6.3 Complete la información de la cuenta
Título del sitio: myweb
Nombre completo: admin
Dirección de correo electrónico: [email protected]
Contraseña: Personalizada.
6.4 Entrar en la página de gestión de fondo de Ghost
7. Publicar contenido del sitio web
7.1 Ingrese a la página de edición de contenido
Siga los pasos a continuación para ingresar a la página de edición de contenido.
7.2 Edición del contenido del sitio web
Para editar el contenido del sitio web, seleccione pulir.
7.3 Visualización del contenido del sitio web
Dirección de acceso: http://192.168.3.166:2368/
para ver el nuevo contenido de la web