A GraphQL Server for the Docker API, written in Golang.
Note: It's important to keep this schema synced with the types implemented in the wrapper, best efforts are made in order to keep it so. That being said, You need to know this schema is subject to change as the time goes by and new changes are introduced in the Docker API and this wrapper as well.
- Get the package:
go get -d gitlab.com/ulm0/graphql-docker-api/cmd/gdapi - Dependencies
- Not using
dep. Go to the project folder withcd $GOPATH/src/gitlab.com/ulm0/graphql-docker-api/cmd/gdapiandgo get -d ./, this will download the depedencies needed, once that's done build the package withgo build. - Using
dep. Go to the project folder withcd $GOPATH/src/gitlab.com/ulm0/graphql-docker-api, and rundep ensure, now get to$GOPATH/src/gitlab.com/ulm0/graphql-docker-api/cmd/gdapiand build the package withgo build.
- Not using
That's pretty much it. Congrats You have GraphQL Docker API on your system now.
docker run -d \
--name docker-gql \
-p 8080:8080 \
-e API_ENDPOINT="/api" \
-v /var/run/docker.sock:/var/run/docker.sock \
ulm0/docker-gqlNote: The -v /var/run/docker.sock:/var/run/docker.sock option can be used in Linux environments only.
docker run -d \
--name docker-gql \
-p 8080:8080 \
-e API_ENDPOINT="/api" \
-e DOCKER_HOST="http://<host>:<port>" \
ulm0/docker-gqldocker run -d \
--name docker-gql \
-p 8080:8080 \
-e API_ENDPOINT="/api" \
-e DOCKER_HOST="https://<host>:<port>" \
-v /path/to/folder/containing/the/docker/certs:/etc/docker \
ulm0/docker-gqlDOCKER_CERT_PATH: When using safe connection to Docker Remote API.DOCKER_HOST: Host the API will retrieve information from (default:"/var/run/docker.sock").GQL_PORT: Port the API will listen on (default:":8080").GRAPHIQL: It's enabled by default,GRAPHIQL=0must be set in order to disable it.API_ENDPOINT: Endpoint for the API (default:"/graphql").
- If using a Docker Remote API, this must be specified with the either HTTP or HTTPS protocols (e.g,:
DOCKER_HOST="http://<host>:<port>"). - When using HTTPS, the TLS certs must be placed in
/etc/dockeror the/path/to/folder/containing/the/docker/certsmust be mounted under/etc/dockerinside the running container, and must follow the semantics behind the DOCKER_CERT_PATH env var. GRAPHIQLcan be reached at theAPI_ENDPOINT; disabling is advised when using in production, you can do so by settingGRAPHIQL=0.
- GraphQL Queries
- Map to endpoints of the Docker API
- Containers
- Images
- Swarm
- Services
- Stacks
- System
- Volumes
- Secrets
- Tasks
- Map to endpoints of the Docker API
- GraphQL Mutations
- GraphQL Subscriptions if possible, especially for Docker events
- GraphQL Descriptions
- Authentication / Authorization
- Makefile for local build
- Binary
- Docker image
- CI integration
- Build from source how-to
- Docker image how-to
- Multiarch support using manifest-tool
