Dockerfiles API
GitLab provides an API endpoint for instance-level Dockerfile templates.
Default templates are defined at
vendor/Dockerfile
in the GitLab repository.
Users with the Guest role can’t access the Dockerfiles templates. For more information, see Project and group visibility.
Override Dockerfile API templates
In GitLab Premium and Ultimate tiers, GitLab instance administrators can override templates in the Admin area.
List Dockerfile templates
Get all Dockerfile templates.
GET /templates/dockerfiles
Example request:
curl "https://gitlab.example.com/api/v4/templates/dockerfiles"
Example response:
[
{
"key": "Binary",
"name": "Binary"
},
{
"key": "Binary-alpine",
"name": "Binary-alpine"
},
{
"key": "Binary-scratch",
"name": "Binary-scratch"
},
{
"key": "Golang",
"name": "Golang"
},
{
"key": "Golang-alpine",
"name": "Golang-alpine"
},
{
"key": "Golang-scratch",
"name": "Golang-scratch"
},
{
"key": "HTTPd",
"name": "HTTPd"
},
{
"key": "Node",
"name": "Node"
},
{
"key": "Node-alpine",
"name": "Node-alpine"
},
{
"key": "OpenJDK",
"name": "OpenJDK"
},
{
"key": "PHP",
"name": "PHP"
},
{
"key": "Python",
"name": "Python"
},
{
"key": "Python-alpine",
"name": "Python-alpine"
},
{
"key": "Python2",
"name": "Python2"
},
{
"key": "Ruby",
"name": "Ruby"
},
{
"key": "Ruby-alpine",
"name": "Ruby-alpine"
},
{
"key": "Rust",
"name": "Rust"
},
{
"key": "Swift",
"name": "Swift"
}
]
Single Dockerfile template
Get a single Dockerfile template.
GET /templates/dockerfiles/:key
Attribute | Type | Required | Description |
---|---|---|---|
key
| string | yes | The key of the Dockerfile template |
Example request:
curl "https://gitlab.example.com/api/v4/templates/dockerfiles/Binary"
Example response:
{
"name": "Binary",
"content": "# This file is a template, and might need editing before it works on your project.\n# This Dockerfile installs a compiled binary into a bare system.\n# You must either commit your compiled binary into source control (not recommended)\n# or build the binary first as part of a CI/CD pipeline.\n\nFROM buildpack-deps:buster\n\nWORKDIR /usr/local/bin\n\n# Change `app` to whatever your binary is called\nAdd app .\nCMD [\"./app\"]\n"
}