Запуск RemoteApp в Docker контейнере

Установите пакеты Docker и Docker-compose в соответствии с документацией к вашему дистрибутиву.

  1. Создайте произвольную директорию, например, remoteapp:

    mkdir remoteapp
    
  2. В ней создайте два файла:

    Dockerfile с содержимым:

    # syntax=docker/dockerfile:1
    FROM python:3.7-slim
    ENV PIP_INDEX_URL="http://pypi.accentos.ru/simple/"
    ENV PIP_TRUSTED_HOST="pypi.accentos.ru"
    ENV SELF_IP = host.docker.internal
    ARG CLOUD_IP
    ARG CLOUD_DOMAIN
    ARG CLOUD_USER
    ARG CLOUD_PASSWORD
    ARG CLOUD_API
    RUN pip3 install remoteapp
    RUN mkdir -p /etc/remoteapp /var/log/remoteapp/
    RUN python3 usr/local/lib/python3.7/site-packages/remoteapp/ra-client.py update type ipaddr=$CLOUD_IP domain=$CLOUD_DOMAIN user=$CLOUD_USER password=$CLOUD_PASSWORD id=1 type=mstsc template=default ext=rdp
    RUN python3 usr/local/lib/python3.7/site-packages/remoteapp/ra-client.py update pub ipaddr=$CLOUD_IP domain=$CLOUD_DOMAIN user=$CLOUD_USER password=$CLOUD_PASSWORD  id=1 type=win configure=default ext=reg
    RUN remoteapp-configure
    RUN sed -i "s/localhost/$CLOUD_IP/g" /etc/remoteapp/remoteapp.conf
    RUN sed -i "s/127.0.0.1/$CLOUD_API/g" /etc/remoteapp/remoteapp.conf
    

    и docker-compose.yaml с содержимым:

    version: '3'
    
    services:
      ra_api:
        build:
          context: .
          dockerfile: Dockerfile
          args:
            CLOUD_IP: IP
            CLOUD_DOMAIN: DOMAIN
            CLOUD_USER: USER
            CLOUD_PASSWORD: PASSWORD
            CLOUD_API: API_IP
        image: remoteapp/ra_api:latest
        container_name: ra_api
        command: /usr/local/bin/gunicorn --bind=0.0.0.0:8001 --workers=3 --threads=10 remoteapp.cloudapi.wsgi:app
        ports:
          - "8001:8001"
    
      ra_web:
        image: remoteapp/ra_api:latest
        container_name: ra_web
        command: /usr/local/bin/gunicorn --bind=0.0.0.0:8080 --workers=3 --threads=10 remoteapp.app.wsgi:app
        ports:
        - "8080:8080"
    

    В файле docker-compose.yaml заполните необходимые аргументы:

    • CLOUD_IP: - IP-адрес облака, с которым будет работать RemoteApp. Например, 10.40.50.60;
    • CLOUD_DOMAIN: - имя домена для авторизации в облаке. Например, default;
    • CLOUD_USER: - имя пользователя для авторизации в облаке. Например, admin;
    • CLOUD_PASSWORD: - пароль для пользователя, указанного в CLOUD_USER. Например, password;
    • CLOUD_API: - IP-адрес, где запущен контейнер c remoteapp api. Например, 10.60.50.40.
  3. Для создания образа для запуска контейнера в папке, в которой были созданы файлы на шаге 2, выполните:

    sudo docker-compose build
    
  4. Для старта контейнера с RemoteApp выполните:

    sudo docker-compose up -d
    
  5. После успешного старта интерфейс RemotApp будет доступен по адресу http://HOST_IP:8080, где HOST_IP – IP-адрес хоста, на котором выполнялся запуск контейнеров.