Разрабатываю локально приложение фронт Vue2, бек Express, бд Mongo через docker.
При разработке я проксирую запросы к api на порт где запускаю сервер
devServer: {
proxy: {
'^/api': {
target: 'http://192.168.0.132:3000',
ws: true,
changeOrigin: true
},
}
}
А сам сервер подключается к mongo таким образом
await mongoose.connect('mongodb://127.0.0.1:27017/example', {
useNewUrlParser: true,
useUnifiedTopology: true,
})
С деплоем раньше не имел дело, подскажите, как организовать это всё на сервере. Сначала я создал 2 виртуальных хоста в nginx api.example, и app.example. И хотел просто обращаться к серверу, но не очень понимаю как в такой связке сервер должен общаться с бд и правильный ли вообще такой подход?
CI/CD хочу настроить через gitlab. Для фронта всё просто, собираю и закидываю в нужную папку, а как обновлять сервер?
Пайплайн фронта
build site:
image: node:16
stage: build
script:
- npm ci
- npm run build
artifacts:
expire_in: 1 week
paths:
- dist
deploy:
image: alpine
stage: deploy
script:
- apk add --no-cache rsync openssh
- mkdir -p ~/.ssh
- echo "$SSH_PRIVATE_KEY" >> ~/.ssh/id_dsa
- chmod 600 ~/.ssh/id_dsa
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
- rsync -rav --delete dist/ root@example:/var/www/app.example/html