Closed
Bug 1489595
Opened 6 years ago
Closed 6 years ago
What code is running for `workerType: servo-docker-worker`?
Categories
(Taskcluster :: Operations and Service Requests, task)
Taskcluster
Operations and Service Requests
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: SimonSapin, Unassigned)
Details
… if it is not enabled already. This is the "dind" feature documented at https://docs.taskcluster.net/docs/reference/workers/docker-worker/docs/payload , which as I understand it binds a Unix socket to allow reaching the worker/host’s Docker daemon from within the task/container. Also, could you please let me know, or better if possible let me know how to find out myself: * What OS distribution and version are these workers running? * What Docker distribution and version? (A first attempt caused "Error response from daemon: client and server don't have same version": https://tools.taskcluster.net/groups/d1iouUX1S72lEbbI6hfGcA/tasks/JMOZEORVRtuHvACTNv8D8w/details ) For context, I’d like to use this to build on demand the Docker images used in Servo tasks, similar to https://firefox-source-docs.mozilla.org/taskcluster/taskcluster/docker-images.html . Thanks!
Updated•6 years ago
|
Flags: needinfo?(wcosta)
Comment 1•6 years ago
|
||
afaict, dind features works. docker-worker runs on Ubuntu 14.04, with kernel 4.4.0-1014-aws, and the docker version is 18.06.0.
Flags: needinfo?(wcosta)
Reporter | ||
Comment 2•6 years ago
|
||
> docker-worker runs on […] Can you confirm if this also applies to servo-docker-worker specifically, or if it could be on older versions? Running "docker version" in a task prints: Client: Version: 17.12.1-ce API version: 1.24 (downgraded from 1.35) Go version: go1.10.1 Git commit: 7390fc6 Built: Wed Apr 18 01:23:11 2018 OS/Arch: linux/amd64 Error response from daemon: client and server don't have same version (client : 1.24, server: 1.18) https://tools.taskcluster.net/groups/NzDRDb19RtSIcb0jTFU-eA/tasks/FLbvHCQKQAe5MtM_CC2t7g/runs/0/logs/public%2Flogs%2Flive.log#L635-642 So the it seems the client (in the task/container) has a version older than 18.06.0, but an API version newer than the server (on the worker/host) it is talking to.
Flags: needinfo?(wcosta)
Reporter | ||
Comment 3•6 years ago
|
||
I’ve found in https://docs.docker.com/develop/sdk/#api-version-matrix that API version 1.18 corresponds (somehow? I’m not sure of the exact relationship between these two numbers) to Docker 1.6, which happens to be the version of the 'docker.io' package in the Ubuntu repositories (not Docker-CE repositories) for Ubuntu 14.04. By making my task run in a 14.04 image and install that package, I was able to run "docker version" and have it successfully talk to the server which is presumably running on the host outside of the task’s container. (My "docker build" command fails apparently because the command-line interface was different in that version, I’ll keep looking.) So the initial premise of this issue is solved, but I’d still like to have a way to look at the exact worker code handling tasks with `provisionerId: aws-provisioner-v1` and `workerType: servo-docker-worker`.
Reporter | ||
Updated•6 years ago
|
Summary: Enable docker-in-docker for the servo-docker-worker worker type → What code is running for `workerType: servo-docker-worker`?
Updated•6 years ago
|
Flags: needinfo?(wcosta)
Reporter | ||
Comment 4•6 years ago
|
||
Closing as I’ve now managed to use docker-in-docker to build a docker image in a task and run it in a dependent task, and got some answers about the code/configuration of servo-docker-worker on IRC. Thanks all! https://github.com/servo/servo-taskcluster-experiments/commits/ea7804385d https://tools.taskcluster.net/groups/TnPiGW2uTvelGQQS80AhFA
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Assignee | ||
Updated•5 years ago
|
Component: Service Request → Operations and Service Requests
You need to log in
before you can comment on or make changes to this bug.
Description
•