diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..e736cba --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +docker-compose.yaml \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2c571d6 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,30 @@ +# Используем официальный образ Node.js в качестве базового +FROM node:18-alpine + +# Устанавливаем зависимости для операционной системы +# RUN apk add --no-cache git python3 make g++ + +# Устанавливаем версию Ionic CLI +RUN npm install -g @ionic/cli + +# Создаем рабочую директорию для приложения +WORKDIR /app + +# Копируем package.json и package-lock.json в контейнер +COPY package*.json ./ + +# Устанавливаем зависимости +RUN npm install + +# Копируем остальные файлы проекта в контейнер +COPY . . + +# Собираем приложение +RUN npm run build + +# Открываем порт 8100 для доступа к приложению +EXPOSE 8100 +EXPOSE 9000 + +# Запускаем Ionic сервер для разработки +CMD ["ionic", "serve", "--host", "0.0.0.0", "--port", "8100"] \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..8a5e571 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,43 @@ + +# Docker Compose файл для запуска двух контейнеров с приложением Ionic и настроенной сетью +version: '3.8' + +networks: + ionic_net: + driver: bridge + ipam: + config: + - subnet: 172.168.0.0/24 + +services: + app1: + build: . + container_name: ionic_app1 + networks: + ionic_net: + ipv4_address: 172.168.0.2 + ports: + - "8100:8100" + volumes: + - .:/app + deploy: + resources: + limits: + cpus: "0.5" + memory: "512M" + + app2: + build: . + container_name: ionic_app2 + networks: + ionic_net: + ipv4_address: 172.168.0.3 + ports: + - "8101:8100" + volumes: + - .:/app + deploy: + resources: + limits: + cpus: "0.5" + memory: "512M" \ No newline at end of file