Docker build for SDL Core.
Currently only supports
masteranddevelopbranches
Master
$ docker run -d -p 12345:12345 -p 8080:8080 -p 8087:8087 -p 3001:3001 --name core smartdevicelink/core:latest
Develop
$ docker run -d -p 12345:12345 -p 8080:8080 -p 8087:8087 -p 3001:3001 --name core smartdevicelink/core:develop
Docker automatically creates a port mapping to the following ports in the container:
| container port | description |
|---|---|
| 3001 | Port exposing core's file system |
| 8087 | Websocket port used by the HMI to communicate with SDL Core |
| 8080 | Serves static web HMI |
| 12345 | SDL Core's primary port |
Docker will automatically map the exposed ports for you when you use the -P flag. If the Websocket port 8087 is mapped to anything other than 8087 in the container then you must supply the HMI_WEBSOCKET_ADDRESS enviroment variable when Docker is ran. This is required so that the HMI can communicate with Core. For example if you wanted to map port 9001 of your machine to the container's port 8087 then you would set the HMI_WEBSOCKET_ADDRESS using the -e flag as follows:
$ docker run -d -P -p 9001:8087 -e "HMI_WEBSOCKET_ADDRESS=127.0.0.1:9001" --name core smartdevicelink/core:latest
Typically SDL Core and its corresponding HMI exist on the same machine. For development this is not always the case. In the Docker image there is an NGINX server that exposes the contents of the storage folder /usr/sdl/bin/storage over port 3001. These contents can be access using the absolute path as it existis on the core machine. For example if core is running on your local machine, a SetAppIcon request would respond with the value /usr/sdl/bin/storage/SyncProxyTester584421907/icon.png. The server on port 3001 can be used to access this file remotely: http://localhost:3001/usr/sdl/bin/storage/SyncProxyTester584421907/icon.png/
Note: SDL Core will take some time to compile
$ docker build -t my-build-tag .
Content type
Image
Digest
Size
911.4 MB
Last updated
over 9 years ago
docker pull smartdevicelink/core