diff --git a/Dockerfile b/Dockerfile index 6ea05d4..a86dddd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,11 +14,12 @@ RUN apt-get update && apt-get install -y \ ca-certificates \ openssh-server \ apt-transport-https \ + make \ software-properties-common # Настраиваем sudo для пользователя RUN useradd -m -s /bin/bash user && \ - echo 'user:user' | chpasswd && \ + echo 'admin:admin' | chpasswd && \ usermod -aG sudo user # Устанавливаем пароль для пользователя root @@ -26,17 +27,8 @@ RUN echo 'root:root' | chpasswd # Настройка SSH-сервера RUN mkdir /var/run/sshd -RUN echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config -RUN echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config - -# Устанавливаем Docker -RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \ - add-apt-repository \ - "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" && \ - apt-get update && apt-get install -y docker-ce docker-ce-cli containerd.io - -# Добавляем пользователя user в группу docker -RUN usermod -aG docker user +RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config +RUN sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config # Открываем порт SSH EXPOSE 22 diff --git a/README.md b/README.md index e233634..eb3b6bb 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,19 @@ -##### VSI - Virtual server infrastructure +## VSI - Virtual server infrastructure WARN: Для данного репозитория необходим раннер! В данном репозитории находиться конфигурация виртуальных серверов для поднятия через докер + + +### Ручной запуск + +``` sh + $ docker compose up -d --force-recreate +``` + +### Подключение к контейнерам + +``` sh + # root:root, * - определенный инстанс сервера \ + # ( от 1 до 3 как в докерфайле ) + $ ssh root@ -p 10*22 +``` \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index a8881ea..c1937cf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,34 +1,69 @@ version: '3' + +networks: + router-enter-code: + + + services: ubuntu_vm1: build: . container_name: ubuntu_vm1 ports: - - "10122:22" # Проброс порта для SSH + - "0.0.0.0:10122:22" volumes: - vm1_data:/home/user/data tty: true + networks: + - router-enter-code stdin_open: true - ubuntu_vm2: - build: . - container_name: ubuntu_vm2 - ports: - - "10222:22" - volumes: - - vm2_data:/home/user/data - tty: true - stdin_open: true + deploy: + resources: + limits: + cpus: '0.5' # Ограничение использования CPU (например, 50% от одного ядра) + memory: 1024M # Ограничение использования памяти (1024 MB) + reservations: + cpus: '0.25' # Резервируем 25% одного ядра для контейнера + memory: 512M # Резервируем 512 MB памяти для контейнера - ubuntu_vm3: - build: . - container_name: - ports: - - "10322:22" - volumes: - - vm3_data:/home/user/data - tty: true - stdin_open: true + # ubuntu_vm2: + # build: . + # container_name: ubuntu_vm2 + # ports: + # - "0.0.0.0:10222:22" + # volumes: + # - vm2_data:/home/user/data + # tty: true + # stdin_open: true + + # deploy: + # resources: + # limits: + # cpus: '0.5' # Ограничение использования CPU (например, 50% от одного ядра) + # memory: 1024M # Ограничение использования памяти (1024 MB) + # reservations: + # cpus: '0.25' # Резервируем 25% одного ядра для контейнера + # memory: 512M # Резервируем 512 MB памяти для контейнера + + # ubuntu_vm3: + # build: . + # container_name: ubuntu_vm3 + # ports: + # - "0.0.0.0:10322:22" + # volumes: + # - vm3_data:/home/user/data + # tty: true + # stdin_open: true + + # deploy: + # resources: + # limits: + # cpus: '0.5' # Ограничение использования CPU (например, 50% от одного ядра) + # memory: 1024M # Ограничение использования памяти (1024 MB) + # reservations: + # cpus: '0.25' # Резервируем 25% одного ядра для контейнера + # memory: 512M # Резервируем 512 MB памяти для контейнера volumes: vm1_data: