diff --git a/Makefile b/Makefile index 66b971f473..1b95fa4c68 100644 --- a/Makefile +++ b/Makefile @@ -67,6 +67,14 @@ build-nvidia: docker/docker-compose-nvidia.yml build \ ${ADD_ARGS} +build-intel: TAG ?= rlworkgroup/garage-intel:latest +build-intel: docker/docker-compose-intel.yml + TAG=${TAG} \ + docker-compose \ + -f docker/docker-compose-intel.yml \ + build \ + ${ADD_ARGS} + run-ci: ## Run the CI Docker container (only used in TravisCI) run-ci: TAG ?= rlworkgroup/garage-ci run-ci: @@ -108,6 +116,22 @@ run-nvidia: build-nvidia ${ADD_ARGS} \ rlworkgroup/garage-nvidia $(RUN_CMD) +run-intel: ## Run the Docker container for machines with Intel CPUs +run-intel: CONTAINER_NAME ?= garage-intel +run-intel: build-intel + xhost +local:docker + docker run \ + -it \ + --rm \ + -v /tmp/.X11-unix:/tmp/.X11-unix \ + -v $(DATA_PATH)/$(CONTAINER_NAME):/root/code/garage/data \ + -e DISPLAY=$(DISPLAY) \ + -e QT_X11_NO_MITSHM=1 \ + -e MJKEY="$$(cat $(MJKEY_PATH))" \ + --name $(CONTAINER_NAME) \ + ${ADD_ARGS} \ + rlworkgroup/garage-intel $(RUN_CMD) + # Help target # See https://marmelab.com/blog/2016/02/29/auto-documented-makefile.html diff --git a/docker/Dockerfile.intel b/docker/Dockerfile.intel new file mode 100644 index 0000000000..5324012451 --- /dev/null +++ b/docker/Dockerfile.intel @@ -0,0 +1,8 @@ +ARG PARENT_IMAGE=rlworkgroup/garage-base +FROM $PARENT_IMAGE + +WORKDIR /root/code/garage +RUN ["/bin/bash", "-c", "source activate garage && pip install -e .[intel]"] + +# Ready, set, go. +ENTRYPOINT ["docker/entrypoint-runtime.sh"] diff --git a/docker/Dockerfile.nvidia b/docker/Dockerfile.nvidia index a90cceb127..582c1aab2f 100644 --- a/docker/Dockerfile.nvidia +++ b/docker/Dockerfile.nvidia @@ -2,4 +2,4 @@ ARG PARENT_IMAGE=rlworkgroup/garage-base FROM $PARENT_IMAGE # Ready, set, go. -ENTRYPOINT ["docker/entrypoint-nvidia.sh"] +ENTRYPOINT ["docker/entrypoint-runtime.sh"] diff --git a/docker/docker-compose-intel.yml b/docker/docker-compose-intel.yml new file mode 100644 index 0000000000..82908cc542 --- /dev/null +++ b/docker/docker-compose-intel.yml @@ -0,0 +1,27 @@ +version: '2.2' +services: + garage-base: + build: + cache_from: + - rlworkgroup/garage-intel:latest + context: ../ + dockerfile: docker/Dockerfile.base + image: rlworkgroup/garage-base + garage-intel-no-files: + build: + cache_from: + - rlworkgroup/garage-intel:latest + context: ../ + dockerfile: docker/Dockerfile.intel + args: + - PARENT_IMAGE=rlworkgroup/garage-base + image: rlworkgroup/garage-intel-no-files + garage-intel: + build: + cache_from: + - rlworkgroup/garage-intel:latest + context: ../ + dockerfile: docker/Dockerfile.runtime + args: + - PARENT_IMAGE=rlworkgroup/garage-intel-no-files + image: ${TAG} diff --git a/docker/entrypoint-nvidia.sh b/docker/entrypoint-runtime.sh similarity index 100% rename from docker/entrypoint-nvidia.sh rename to docker/entrypoint-runtime.sh diff --git a/setup.py b/setup.py index 9c526a0ad1..89b99caee9 100644 --- a/setup.py +++ b/setup.py @@ -34,6 +34,9 @@ extras = {} extras['all'] = list(set(sum(extras.values(), []))) +# Intel dependencies not included in all +extras['intel'] = ['intel-tensorflow<1.13,>=1.12.0'] + # Development dependencies (*not* included in "all") extras['dev'] = [ # Please keep alphabetized