Я создал экземпляр GCP MV, используя CentOS 7, и хочу развернуть на нем, используя Docker:
- два контейнера для производства
- один для производства
- один для резервного копирования в случае срочной ошибки
- один для технического обслуживания
- один контейнер для подготовки
- один контейнер для БД (mongodb)
- один контейнер для панели администратора
Я уже создал его, но я не думаю, что моя папка / архитектура очень эффективна, и я не нахожу какой-либо лучший способ создания докера-app.
После входа в мой экземпляр с помощью команды GCP я нахожусь в своем домашнем каталоге: / home / current-user-directory /
Прежде всего, пользователи используют этот проект иу них другое имя пользователя.Если они войдут в него, они попадут в каталог / home / xxx ... Как войти в обычный каталог?пример /home/my-project-directory.
Внутри этого каталога / home / моя папка
- /apps/
- - /project-name/
- - - /db/
- - - /admin/
- - - /api/
внутри / db / У меня есть файл docker-compose
/ db / docker-compose
version: "3"
services:
### MongoDB ##############################################
mongo:
container_name: app_mongo
restart: "always"
image: mongo
command: mongod --port 27017 --auth
ports:
- "27017:27017"
volumes:
- /data/db:/data/db
networks:
- app_bridge
networks:
app_bridge:
driver: bridge
/ api / docker-compose
version: '3'
services:
api:
container_name: api
build:
context: .
dockerfile: ./docker/api/Dockerfile
ports:
- "80:8082"
- "443:443"
restart: always
environment:
- NODE_ENV=prod
- MONGO_URI=mongo
- MONGO_PORT=27017
- MONGO_DB=app
- PORT=8082
networks:
- db_app_bridge
networks:
db_app_bridge:
external: true
Dockerfile
FROM node:9.5-slim
ENV DEBUG="api:*"
RUN mkdir -p /api
WORKDIR /api
COPY ./api ./
EXPOSE 8082
CMD /api/bin/www
Я еще не создал файл docker-compose для подготовки и обслуживания.
Я хотел бы знать, какова эта лучшая практика для такого проекта.Это хороший или плохой способ?