Системное администрирование
Как выглядит production разработка WEB на (react, php, docker, gihub)?
Как мне организовать и докер и разработку под php doker eract github. Как сделать два репозитория и чтобы бекэндер мог запустить команду docker-compose и у него развернулась вся сборка с nginx php db. Но при том чтобы он мог комитить отдельно в репозиторий связанный с бэком. Как должен выглядеть весь pipeline?
Ваш процесс разработки включает несколько важных частей:
Docker Compose позволяет вам определить и запускать многоконтейнерные Docker-приложения. Ваш файл docker-compose.yml может выглядеть так:
Также обратите внимание, что вам потребуется Dockerfile для каждого из ваших сервисов. Вот примеры для PHP и React:
Dockerfile для PHP:
Пример рабочего процесса GitHub Actions для PHP и React может выглядеть так:
- Разделение кода на два репозитория: один для React (фронтенд), другой для PHP (бэкенд).
- Использование Docker и Docker Compose для создания контейнеризированного окружения, которое включает в себя Nginx, PHP и базу данных.
- Работа с GitHub для управления версиями вашего кода.
- Разделение кода
- Docker и Docker Compose
Docker Compose позволяет вам определить и запускать многоконтейнерные Docker-приложения. Ваш файл docker-compose.yml может выглядеть так:
version: '3'
services:
php:
build:
context: ./path-to-your-php-repo
dockerfile: Dockerfile
volumes:
- ./path-to-your-php-repo:/var/www/html
links:
- db
nginx:
build:
context: ./path-to-your-nginx-config
dockerfile: Dockerfile
ports:
- "80:80"
volumes:
- ./path-to-your-php-repo:/var/www/html
links:
- php
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: dbname
MYSQL_USER: user
MYSQL_PASSWORD: password
frontend:
build:
context: ./path-to-your-react-repo
dockerfile: Dockerfile
volumes:
- ./path-to-your-react-repo:/app
ports:
- "3000:3000"
Обратите внимание, что вы должны заменить path-to-your-php-repo и path-to-your-react-repo на реальные пути к вашим репозиториям.Также обратите внимание, что вам потребуется Dockerfile для каждого из ваших сервисов. Вот примеры для PHP и React:
Dockerfile для PHP:
FROM php:7.4-fpm
WORKDIR /var/www/html
COPY . .
RUN docker-php-ext-install pdo_mysql
Dockerfile для React: FROM node:12
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
- Использование GitHub
- CI/CD Pipeline
Пример рабочего процесса GitHub Actions для PHP и React может выглядеть так:
Отдельные репозитории под клиент и под сервер. Клиент и сервер собираются каждый в свой отдельный Docker образ. В репу сервера положить docker-compose файл в котором это все запускается - два сервиса, клиент и сервер из своих образов.
На продакшен сервере поставить Kubernetes или тот же docker compose(может оказаться не очень хорошей идеей).
В CI для клиента и для сервера примерно одинаковый пайплайн нужно настроить - сборка образа, пуш образа в registry, рестарт с новым образом deployment'а в kubernetes/рестарт docker-compose.
На продакшен сервере поставить Kubernetes или тот же docker compose(может оказаться не очень хорошей идеей).
В CI для клиента и для сервера примерно одинаковый пайплайн нужно настроить - сборка образа, пуш образа в registry, рестарт с новым образом deployment'а в kubernetes/рестарт docker-compose.
Похожие вопросы
- Разработка веб сайтов обязательно должно включать техническое задание? Или оно не необходимо?
- как понять начальными навыками разработки на платформе 1С?
- Зачем нужно изучать backend разработку?
- Зачем сисадмину php/python?
- VPS + настройки PHP + WordPress - вопрос по оперативной памяти
- Как организовать доступ к двум сайтам на одном ip? ubuntu nginx php-fpm dotnet
- Почему государство не озаботилось факультетами веб разработки в вузах и колледжах?
- Ребят. Хочю работать в IT компанни. Так же хочю учить c++ java и php. Что посоветуете первый учить и чем заканчивать
- Подскажите бесплатный хостинг с php,mysql с возможностью работать хотябы год
- А им точно seo специалист нужен? Зачем сеошнику знания js, html, php, mysql, coralldraw, ilustrator и чтоб ещё
Этот процесс разработки позволяет вам и вашей команде разрабатывать, тестировать и развертывать код эффективно и безопасно.