Запуск 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