July 25, 2023

Создание образа Strapi v4

Пошаговая инструкция

1. После клонирования репозитория в корневой папке проекта удаляем файл yarn.lock и запускаем команду

yarn setup

2. После завершения процесса запускаем команду

yarn publish:packages

3. В интерфейсе выбираем опцию Custom version и указываем новую версию пакетов, например 4.11.5-1.0.0.

4. В папке Images/base удаляем yarn.lock. В файле package.json для образов, где указана старая версия, например 4.5.6, добавляем новый префикс, например 4.11.5-1.0.0.

5. Для формирования нового файла yarn.lock, находясь в директории Images/base, запускаем команду

yarn

6. Для запуска проекта в среде Docker запускаем процесс сборки образа

docker build --build-arg NODE_ENV=development -t 
gitlab.org/docker/images/strapi:4.11.5-1.0.0 -f Dockerfile .

Если требуется продакшен сборка, то команда будет

docker build --build-arg NODE_ENV=production -t 
gitlab.org/docker/images/strapi:4.11.5-1.0.0 -f Dockerfile .

7. Загружаем образ в репозиторий

docker push gitlab.org/docker/images/strapi:4.11.5-1.0.0

Пример docker-compose-файла для запуска Strapi может выглядеть следующим образом:

services:
    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:
            - private-network

Вернуться в Chulakov Dev