Запуск Strapi v4 в Docker
Инструкция
Docker-compose-файл может выглядеть следующим образом:
version: '3.7'
networks:
frontend:
external:
name: frontend-network
backend-network:
external:
name: backend-network
services:
strapi-app:
image: gitlab.org/docker/images/strapi:4.11.5-1.0.0
logging:
driver: 'json-file'
options:
max-file: '2'
max-size: '5m'
container_name: strapi
restart: always
env_file: .env
environment:
PORT: ${PORT}
DATABASE_CLIENT: ${DATABASE_CLIENT}
DATABASE_HOST: ${DATABASE_HOST}
DATABASE_PORT: ${DATABASE_PORT}
DATABASE_NAME: ${DATABASE_NAME}
DATABASE_USERNAME: ${DATABASE_USERNAME}
DATABASE_PASSWORD: ${DATABASE_PASSWORD}
JWT_SECRET: ${JWT_SECRET}
ADMIN_JWT_SECRET: ${ADMIN_JWT_SECRET}
APP_KEYS: ${APP_KEYS}
API_TOKEN_SALT: ${API_TOKEN_SALT}
NODE_ENV: ${NODE_ENV}
volumes:
- ./../../app/src:/opt/app/src
- ./../../app/public/uploads:/opt/app/public/uploads
- ./../../app/config:/opt/app/config
networks:
- backend-network
volumes:
strapi-data:
name: "strapi-data"Создаем файл с переменными окружения с именем .env
Пример заполнения переменных окружения
PORT=3000 — порт, по которому доступно приложение Node.JS.
HOST_URL — адрес, по которому приложение будет доступно в браузере.
API_HTTP_SCHEME=http:// — при локальной разработке используется http-схема.
API_HTTP_DOMAIN=admin.hostname.local — API-адрес для получения изображений.
CLIENT_API_URL=http://admin.hostname.local/api — адрес, по которому осуществляется получение данных API с клиента через DNS-сервер.
SSR_API_URL=http://strapi-nginx/api — адрес, по которому будем получать данные при выполнении запроса с сервера NODE JS.
ASSET_PREFIX= — используется для отображения статики.
STRAPI_PORT=1337 — порт, на котором работает Strapi.
APP_KEYS="examplekey1,examplekey2" — секретные ключи для cookies.
API_TOKEN_SALT=example — используется для шифрования канала.
ADMIN_JWT_SECRET=examplekey — JWT-ключ для административной панели.
JWT_SECRET=examplekey — JWT-ключ для пользовательских прав.
NODE_ENV=development — запуск сборки разработчика, production — prod режим.
DATABASE_CLIENT=postgres — используемый клиент базы данных.
DATABASE_HOST=strapiDB — название хоста, на котором развернута база данных.
DATABASE_PORT=5432 — порт, на котором работает postgres.
DATABASE_NAME=strapidb — название базы данных.
DATABASE_USERNAME=strapi — имя пользователя базы данных.
DATABASE_PASSWORD=12345678 — пароль к базе данных.
Запускаем приложение с помощью команды
docker-compose up -d
В файле /etc/hosts необходимо указать хост, по которому наше приложение будет доступно с браузера. В нашем случае это:
127.0.0.1 admin.hostname.local