diff --git a/README.md b/README.md index e892cc2..f46cd69 100644 --- a/README.md +++ b/README.md @@ -51,10 +51,10 @@ Use one of our pre-installed Amazon Machine Images for easy deployment in AWS. For details and instructions, see [TRAINS-server: AWS pre-installed images](docs/install_aws.md). -## Docker Installation - Linux, macOS +## Docker Installation - Linux, macOS, and Windows Use our pre-built Docker image for easy deployment in Linux and macOS. -For Windows, we recommend installing our pre-built Docker image on a Linux virtual machine. +For Windows, please see detailed docker-compose installation instructions on our [FAQ](https://github.com/allegroai/trains-server/blob/master/docs/faq.md#docker_compose_win10). Latest docker images can be found [here](https://hub.docker.com/r/allegroai/trains). 1. Setup Docker (docker-compose installation details: [Ubuntu](docs/faq.md#ubuntu) / [macOS](docs/faq.md#mac-osx)) diff --git a/docker-compose-win10.yml b/docker-compose-win10.yml new file mode 100644 index 0000000..beaf05b --- /dev/null +++ b/docker-compose-win10.yml @@ -0,0 +1,117 @@ +version: "3.6" +services: + + apiserver: + command: + - apiserver + container_name: trains-apiserver + image: allegroai/trains:latest + restart: unless-stopped + volumes: + - c:/opt/trains/logs:/var/log/trains + - c:/opt/trains/config:/opt/trains/config + depends_on: + - redis + - mongo + - elasticsearch + - fileserver + environment: + ELASTIC_SERVICE_HOST: elasticsearch + MONGODB_SERVICE_HOST: mongo + REDIS_SERVICE_HOST: redis + ports: + - "8008:8008" + networks: + - backend + + elasticsearch: + networks: + - backend + container_name: trains-elastic + environment: + ES_JAVA_OPTS: -Xms2g -Xmx2g + bootstrap.memory_lock: "true" + cluster.name: trains + cluster.routing.allocation.node_initial_primaries_recoveries: "500" + discovery.zen.minimum_master_nodes: "1" + http.compression_level: "7" + node.ingest: "true" + node.name: trains + reindex.remote.whitelist: '*.*' + script.inline: "true" + script.painless.regex.enabled: "true" + script.update: "true" + thread_pool.bulk.queue_size: "2000" + thread_pool.search.queue_size: "10000" + xpack.monitoring.enabled: "false" + xpack.security.enabled: "false" + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + image: docker.elastic.co/elasticsearch/elasticsearch:5.6.16 + restart: unless-stopped + volumes: + - c:/opt/trains/data/elastic:/usr/share/elasticsearch/data + ports: + - "9200:9200" + + fileserver: + networks: + - backend + command: + - fileserver + container_name: trains-fileserver + image: allegroai/trains:latest + restart: unless-stopped + volumes: + - c:/opt/trains/logs:/var/log/trains + - c:/opt/trains/data/fileserver:/mnt/fileserver + ports: + - "8081:8081" + + mongo: + networks: + - backend + container_name: trains-mongo + image: mongo:3.6.5 + restart: unless-stopped + command: --setParameter internalQueryExecMaxBlockingSortBytes=196100200 + volumes: + - mongodata:/data + ports: + - "27017:27017" + + redis: + networks: + - backend + container_name: trains-redis + image: redis:5.0 + restart: unless-stopped + volumes: + - c:/opt/trains/data/redis:/data + ports: + - "6379:6379" + + webserver: + command: + - webserver + container_name: trains-webserver + image: allegroai/trains:latest + restart: unless-stopped + volumes: + - c:/trains/logs:/var/log/trains + depends_on: + - apiserver + ports: + - "8080:80" + +networks: + backend: + driver: bridge + +volumes: + mongodata: \ No newline at end of file diff --git a/docs/faq.md b/docs/faq.md index 922c08d..ee23e39 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -6,12 +6,15 @@ * [Running trains-server on Mac OS X](#mac-osx) +* [Running trains-server on Windows 10](#docker_compose_win10) + * [Installing trains-server on stand alone Linux Ubuntu systems ](#ubuntu) * [Resolving port conflicts preventing fixed users mode authentication and login](#port-conflict) * [Configuring trains-server for sub-domains and load balancers](#sub-domains) + ### Deploying trains-server on Kubernetes clusters **trains-server** supports Kubernetes. See [trains-server-k8s](https://github.com/allegroai/trains-server-k8s) @@ -59,6 +62,43 @@ To install and configure **trains-server** on Mac OS X, follow the steps below. Your server is now running on [http://localhost:8080](http://localhost:8080) +### Running trains-server on Windows 10 + +You can run **trains-server** on Windows 10 using Docker Desktop for Windows (see the Docker [System Requirements](https://docs.docker.com/docker-for-windows/install/#system-requirements)). + +To run **trains-server** on Windows 10, follow the steps below. + +1. Install the Docker Desktop for Windows application by either: + + * following the [Install Docker Desktop on Windows](https://docs.docker.com/docker-for-windows/install/) instructions. + * running the Docker installation [wizard](https://hub.docker.com/?overlay=onboarding). + +1. Increase the memory allocation in Docker Desktop to `4GB`. + + 1. In your Windows notification area (system tray), right click the Docker icon. + + 1. Click *Settings*, *Advanced*, and then set the memory to at least `4096`. + + 1. Click *Apply*. + +1. Create local directories for data and logs. Open PowerShell and execute the following commands: + + mkdir c:\opt\trains\logs + mkdir c:\opt\trains\config + mkdir c:\opt\trains\data + mkdir c:\opt\trains\data\elastic + mkdir c:\opt\trains\data\redis + mkdir c:\opt\trains\data\fileserver + +1. Save the **trains-server** docker-compose YAML file [docker-compose-win10.yml](https://raw.githubusercontent.com/allegroai/trains-server/master/docker-compose-win10.yml) as `c:\opt\trains\docker-compose.yml`. + +1. Run `docker-compose`. In PowerShell, execute the following commands: + + cd c:\opt\trains\ + docker-compose up + + Your server is now running on [http://localhost:8080](http://localhost:8080) + ### Installing trains-server on stand alone Linux Ubuntu systems To install **trains-server** on a stand alone Linux Ubuntu, follow the steps belows.