В общем сделал небольшой проект на ларавеле. Нужно его каким то образом теперь развернуть
Сам по себе проект простой, можно и руками все развернуть, но очень хочется все автоматизировать..
Арендовал значит я сервер, разобрался с ансиблом, удалось даже загрузить и запустить docker с docker-compose на сервере
Сам файл playbook.yml
---
- hosts: all
become: true
gather_facts: no
tasks:
- name: Install aptitude
apt:
name: aptitude
state: latest
update_cache: true
- name: Install required system packages
apt:
pkg:
- apt-transport-https
- ca-certificates
- curl
- software-properties-common
- python3-pip
- virtualenv
- python3-setuptools
state: latest
update_cache: true
- name: Add Docker GPG apt Key
apt_key:
url:
https://download.docker.com/linux/ubuntu/gpg
state: present
- name: Add Docker Repository
apt_repository:
repo: deb
https://download.docker.com/linux/ubuntu focal stable
state: present
- name: Update apt and install docker-ce
apt:
name: docker-ce
state: latest
update_cache: true
- name: Install Docker Module for Python
pip:
name: docker
- name: Install Docker Compose
apt:
name: docker-compose
state: latest
update_cache: true
Теперь застопорился на моменте с деплоем
В проекте юзается докер, так что хочется чтобы в .gitlab-ci как то использовался он же, а не прописывать по новой какие то имаджи но не понимаю как
Что вообще хочется, так это то, чтобы все как то отдельно сбилдилось, затем прогнались тесты, затем отдельно на стейдж, затем отдельно на прод (да, прям вот так вот по взрослому хочется)
Как я это все вижу:
Билдится отдельно фронт и бек - но не очень понятно как, ведь все в одном docker-compose по сути
Затем прогоняются тесты - прочитал про артефакты, не очень понял как из предыдущего этапа достать тот самый докер..
Пребилд стейджа - запуск плейбука только для стейджа (удостовериться что докер установлен)
Билд стейджа - перекидывание докер образа (но ведь docker-compose.. не понимаю как работать должно) + docker-compose up видимо
Пребилд прода + билд прода - все то же что на стейдж, но только на прод
Upwork забанен, но очень нужно чтобы кто то объяснил все целиком.. По частям понимаю, как объединить все в одно - нет