Compare commits

..

1 Commits
2.0.3 ... 0.4.1

Author SHA1 Message Date
wildloop
115105a2a0 Init with the docker registry hosted on the same domain as UI 2018-11-12 20:00:05 +01:00
299 changed files with 1820 additions and 6547 deletions

View File

@@ -1,8 +1,4 @@
*
!dist
!bin
!nginx
!src
!package.json
!gulpfile.js
!favicon.ico
!nginx

View File

@@ -1,61 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
Hi, I use this docker registry UI and I have an issue...
## Bug description
A clear and concise description of what the bug is.
## How to Reproduce
For UI bug, steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
For service bug, steps to reproduce the behavior:
<!-- Remove your credentials or anonymize them -->
My docker-compose file
```yml
```
My private docker registry configuration
```yml
```
## Expected behavior
A clear and concise description of what you expected to happen.
## Screenshots
If applicable, add screenshots to help explain your problem.
## System information
- OS: [e.g. Debian 10, Windows, Android 9...]
<!-- Browser is only for UI bugs -->
- Browser:
- Name: [e.g. Chrome, Firefox...]
- Version: [e.g. 22]
- Docker registry UI:
- Version: [e.g. 1.4.0]
- Server: [docker or dist]
<!-- Only for Docker and for where the UI is hosted -->
- Docker version: [e.g. 19.03]
- Docker registry ui tag: [latest, static, master, 1.4-static...]
- OS/Arch: [e.g. linux/amd64]
- Tools: [e.g. docker-compose, kubernets..]
## Additional context
Add any other context about the problem here.

View File

@@ -1,10 +0,0 @@
---
name: Custom issue template
about: Describe this issue template's purpose here.
title: ''
labels: ''
assignees: ''
---

View File

@@ -1,20 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@@ -1,44 +0,0 @@
name: Build and pus master/main docker images
on:
push:
branches: [ master, main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: npm install
- name: Build the interface
run: npm run build
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push Beta Alpine Version
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x
push: true
tags: |
joxit/docker-registry-ui:master
joxit/docker-registry-ui:main
- name: Build and push Beta Debian Version
uses: docker/build-push-action@v2
with:
context: .
file: ./debian.dockerfile
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x
push: true
tags: |
joxit/docker-registry-ui:master-debian
joxit/docker-registry-ui:main-debian

View File

@@ -1,64 +0,0 @@
name: Release
on:
push:
tags: '*'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Install dependencies
run: npm install
- name: Build the interface
run: npm run build
- name: Current tag
id: current-tag
run: echo "::set-output name=tag::$(git describe --tags | grep -o '^[0-9]*\.[0-9]*')"
- name: Download kokai
run: curl -sSL https://github.com/Joxit/kokai/releases/download/$(curl -sSL https://api.github.com/repos/Joxit/kokai/releases/latest | jq -r ".tag_name")/kokai-linux-x86_64 > kokai
- name: Create Release Note
run: chmod +x kokai && ./kokai release --ref ${{ github.ref }} --tag-from-ref . > RELEASE_NOTE.md
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
body_path: RELEASE_NOTE.md
draft: false
prerelease: false
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push Latest Version
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x
push: true
tags: |
joxit/docker-registry-ui:latest
joxit/docker-registry-ui:${{steps.current-tag.outputs.tag}}
- name: Build and push Latest Debian Version
uses: docker/build-push-action@v2
with:
context: .
file: ./debian.dockerfile
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x
push: true
tags: |
joxit/docker-registry-ui:debian
joxit/docker-registry-ui:${{steps.current-tag.outputs.tag}}-debian

41
.gitignore vendored
View File

@@ -1,8 +1,37 @@
.project
node_modules
# dependencies
/node_modules
package-lock.json
# IDEs and editors
/.idea
*.iml
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
# misc
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
yarn-error.log
testem.log
/typings
# System Files
.DS_Store
Thumbs.db
.vscode/
registry-data
.idea
_site
*.orig
.serve/

View File

@@ -1,76 +0,0 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at contact@joxit.dev. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq

View File

@@ -1,37 +0,0 @@
# Contributors
## Committers
- Jones Magloire [@Joxit](https://github.com/Joxit)
- Lennart Blom [@lennartblom](https://github.com/lennartblom)
- Jakob Ackermann [@das7pad](https://github.com/das7pad)
- Olivier Nizet [@onizet](https://github.com/onizet)
- Anton Antonov [@syndbg](https://github.com/syndbg)
- Bertrand Pechenot [@berpec](https://github.com/berpec)
- Sébastien Huss [@sebt3](https://github.com/sebt3)
- Vladimir Kozyrev [@fieryvova](https://github.com/fieryvova)
- Haibo Jia [@bluethon](https://github.com/bluethon)
- Manuel Leitold [@agrippa1994](https://github.com/agrippa1994)
- Murad [@muradheydarov](https://github.com/muradheydarov)
- Giacomo Mazzamuto [@gmazzamuto](https://github.com/gmazzamuto)
- Joe Bureau [@jabstone](https://github.com/jabstone)
## Because committers are not the only contributors
- Ewout Prangsma [@ewoutp](https://github.com/ewoutp)
- [@soosap](https://github.com/soosap)
- Madhukar Mishra [@madhukar93](https://github.com/madhukar93)
- Yoan Blanc [@greut](https://github.com/greut)
- [@samuelmaier](https://github.com/samuelmaier)
- [@sbaloo](https://github.com/sbaloo)
- [@rucciva](https://github.com/rucciva)
- [@wuyue92tree](https://github.com/wuyue92tree)
- Giovanni Toraldo [@gionn](https://github.com/gionn)
- [@marcusblake](https://github.com/marcusblake)
- Dario Piombo [@pidario](https://github.com/pidario)
- Jernej K. [@Cvetk0](https://github.com/Cvetk0)
- Cristian Posoiu [@cr1st1p](https://github.com/cr1st1p)
- Sepp Zuther [@Herr-Sepp](https://github.com/Herr-Sepp)
- Tomas Hulata [@tombokombo](https://github.com/tombokombo)
- Ben Jackson [@bjj](https://github.com/bjj)
- 三十文 [@xfduan](https://github.com/xfduan)

View File

@@ -18,9 +18,4 @@ LABEL maintainer="Jones MAGLOIRE @Joxit"
WORKDIR /usr/share/nginx/html/
ENV NGINX_PROXY_HEADER_Host '$http_host'
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
COPY bin/entrypoint /docker-entrypoint.d/90-docker-registry-ui.sh
COPY dist/ /usr/share/nginx/html/
COPY favicon.ico /usr/share/nginx/html/

1
Dockerfile.static Symbolic link
View File

@@ -0,0 +1 @@
static.dockerfile

212
README.md
View File

@@ -1,95 +1,128 @@
---
title: Docker Registry User Interface
---
# Docker Registry UI
![Stars](https://img.shields.io/github/stars/joxit/docker-registry-ui.svg?logo=github&maxAge=86400)
![Pulls](https://img.shields.io/docker/pulls/joxit/docker-registry-ui.svg?maxAge=86400)
## Overview
This project aims to provide a simple and complete user interface for your private docker registry. You can customize the interface with various options. The major option is `SINGLE_REGISTRY` which allows you to disable the dynamic selection of docker registeries (same behavior as the old **static** tag).
You may need the [migration guide from 1.x to 2.x](https://github.com/Joxit/docker-registry-ui/wiki/Migrating-from-1.x-to-2.x) or [the 1.x readme](https://github.com/Joxit/docker-registry-ui/blob/8fe3adf12540d1316cb57628ebe86a392a703d90/README.md)
This project aims to provide a user interface for your private docker registry v2.
There is no default registry on this UI, you should add your own with the UI.
You can manage more than one registry server.
All registries will be stored in the [local storage](https://en.wikipedia.org/wiki/Web_storage#Local_and_session_storage) of your browser.
This web user interface uses [Riot](https://github.com/Riot/riot) the react-like user interface micro-library and [riot-mui](https://github.com/kysonic/riot-mui) components.
## [Project Page](https://joxit.dev/docker-registry-ui), [Live Demo](https://joxit.dev/docker-registry-ui/demo/), [Examples](https://github.com/Joxit/docker-registry-ui/tree/main/examples)
## [GitHub Page](https://joxit.github.io/docker-registry-ui) and [Live Demo](https://joxit.github.io/docker-registry-ui/demo/)
![preview](https://raw.github.com/Joxit/docker-registry-ui/main/docker-registry-ui.gif "Preview of Docker Registry UI")
![screenshot](https://raw.github.com/Joxit/docker-registry-ui/master/screenshot.png "Screenshot of Docker Registry UI")
## Features
- List all your repositories/images.
- List all tags for a image.
- Sort the tag list with number compatibility (see [#46](https://github.com/Joxit/docker-registry-ui/pull/46)).
- Use a secured docker registry.
- Display image size (see [#30](https://github.com/Joxit/docker-registry-ui/issues/30)).
- Multi arch supports, Alpine and Debian based images with supports for arm32v7 and arm64v8.
- Copy `docker pull` command to clipboard (see [#42](https://github.com/Joxit/docker-registry-ui/issues/42)).
- Show sha256 for specific tag (hover image tag).
- Display image creation date (see [#49](https://github.com/Joxit/docker-registry-ui/issues/49))
- Display image history (see [#58](https://github.com/Joxit/docker-registry-ui/pull/58) & [#61](https://github.com/Joxit/docker-registry-ui/pull/61)).
- Image aggregation (see [#56](https://github.com/Joxit/docker-registry-ui/issues/56)).
- Display image/tag count (see [#56 issue comment](https://github.com/Joxit/docker-registry-ui/issues/56#issuecomment-449246524)).
- Select multiple tags to delete (see [#29](https://github.com/Joxit/docker-registry-ui/issues/29)).
- Select all tags with ALT + Click to delete (see [#80](https://github.com/Joxit/docker-registry-ui/issues/80)).
- One interface for many registries (when `SINGLE_REGISTRY=false`).
- Share your docker registry with query parameter `url` (e.g. `https://joxit.dev/docker-registry-ui/demo?url=https://registry.example.com`) (when `SINGLE_REGISTRY=false`).
- Use the UI as reverse proxy (with `NGINX_PROXY_PASS_URL` environment variable) to your docker registry (This will avoid CORS).
- Add Title when using `REGISTRY_TITLE` (see [#28](https://github.com/Joxit/docker-registry-ui/issues/28)).
- Customise docker pull command on static registry UI (see [#71](https://github.com/Joxit/docker-registry-ui/issues/71)).
- Add custom header via environment variable and file via `NGINX_PROXY_HEADER_*` (see [#89](https://github.com/Joxit/docker-registry-ui/pull/89))
- Show/Hide content digest in taglist via `SHOW_CONTENT_DIGEST` (values are: [`true`, `false`], default: `true`) (see [#126](https://github.com/Joxit/docker-registry-ui/issues/126)).
- Limit the number of elements in the image list via `CATALOG_ELEMENTS_LIMIT` (see [#127](https://github.com/Joxit/docker-registry-ui/pull/127)).
- Multi arch support in history page (see [#130](https://github.com/Joxit/docker-registry-ui/issues/130) and [#134](https://github.com/Joxit/docker-registry-ui/pull/134))
- List all tags for a repository/image
- Sort the tag list
- One interface for many registries
- Use a secured docker registry
- Share your docker registry with query parameter `url` (e.g. `https://joxit.github.io/docker-registry-ui/demo?url=https://registry.example.com`)
- Use `joxit/docker-registry-ui:static` as reverse proxy to your docker registry (This will avoid CORS).
- Display image size (see #30)
- Add Title when using REGISTRY_URL (see #28)
- Alpine and Debian based images with supports for arm32v7 and arm64v8
- Copy `docker pull` command to clipbloard
- Show sha256 for specific tag (hover image tag)
## FAQ
## Getting Started
- What is the difference between **`SINGLE_REGISTRY=false`** and **`SINGLE_REGISTRY=true`** options ?
- When `SINGLE_REGISTRY` is set to false, a menu appears on the interface allowing you to dynamically change docker registry URLs.
- Why, when I delete all tags of an image, the image is still in the UI ?
- This is a limitation of docker registry, the garbage collector don't remove empty images. If you want to delete dangling images, you will need to delete the folder in your registry data. (see [#77](https://github.com/Joxit/docker-registry-ui/issues/77))
- Why the image size in the UI is not the same as displayed during `docker images` ?
- The UI displays the compressed size of the image and not the extracted size version.
- Can I use HTTPS on the UI ?
- Yes, put your favourite reverse proxy on the front of the UI. Your reverse proxy will take care of HTTPS connection.
- Does the UI support authentication ?
- Yes, but it supports only basic auth. It's a simple standalone frontend, it will use your browser window for authentication.
- Can I use the UI and docker client with an insecure registry (registry url without https) ?
- Yes you can, you must first configure your docker client. (see [#76](https://github.com/Joxit/docker-registry-ui/issues/76))
- What does Mixed Content error mean ?
- This means you are using a UI with HTTPS and your registry is using HTTP (unsecured). When you are on a HTTPS site, you can't get HTTP content. Upgrade you registry with a HTTPS connection.
- Why the default nginx `Host` is set to `$http_host` ?
- This fixes the issue [#88](https://github.com/Joxit/docker-registry-ui/issues/88). More about this in [#113](https://github.com/Joxit/docker-registry-ui/issues/113).
- Why DELETE fails with 401 status code (using Basic Auth) ?
- This is caused by a bug in docker registry, I suggest to have your UI on the same domain than your registry e.g. registry.example.com/ui/. (see [#104](https://github.com/Joxit/docker-registry-ui/issues/104)).
- Can I use the docker registry ui as a standalone application (with Electron) ?
- Yes, check out the example [here](https://github.com/Joxit/docker-registry-ui/tree/main/examples/electron). (see [#129](https://github.com/Joxit/docker-registry-ui/pull/129))
- I deleted images through the UI, but they are still present on the server. How can I delete them?
- When you delete an image with the UI, only the reference is deleted and not the content. To remove dangling images, you need to run the garbage collector of the registry with the command `registry garbage-collect config.yml` or `docker exec registry registry garbage-collect config.yml`. (see [#77](https://github.com/Joxit/docker-registry-ui/issues/77) [#147](https://github.com/Joxit/docker-registry-ui/issues/147))
- Why when I delete one tag, all tags with the same SHA are deleted ?
- This a docker registry API limitation, there is only one way to [delete images with tag](https://docs.docker.com/registry/spec/api/#deleting-an-image), it's by its `name` and its `manifest` (it's a sha of the content). So when you delete a tag, this will delete all tags of this image with the same SHA/manifest.
### Basic
First you need node and npm in order to download dependencies.
Need more informations ? Try my [examples](https://github.com/Joxit/docker-registry-ui/tree/main/examples) or open an issue.
```sh
git clone https://github.com/Joxit/docker-registry-ui.git
cd docker-registry-ui
npm install
```
## Available options
Now you can open index.html with your browser or use a http-server
Some env options are available for use this interface for **only one server**.
```sh
npm install -g http-server
http-server
```
- `REGISTRY_URL`: The default url of your docker registry. You may need CORS configuration on your registry. This is usually the domain name or IP of your registry reachable by your computer (e.g `http://registry.example.com`). (default: derived from the hostname of your UI).
- `REGISTRY_TITLE`: Set a custom title for your user interface. (default: value derived from `REGISTRY_URL`).
- `PULL_URL`: Set a custom url when you copy the `docker pull` command. (default: value derived from `REGISTRY_URL`).
- `DELETE_IMAGES`: Set if we can delete images from the UI. (default: `false`)
- `SHOW_CONTENT_DIGEST`: Show content digest in docker tag list. (default: `true`)
- `CATALOG_ELEMENTS_LIMIT`: Limit the number of elements in the catalog page. (default: `100000`).
- `SINGLE_REGISTRY`: Remove the menu that show the dialogs to add, remove and change the endpoint of your docker registry. (default `false`)
- `NGINX_PROXY_PASS_URL`: Update the default Nginx configuration and set the **proxy_pass** to your backend docker registry (this avoid CORS configuration). This is usually the name of your registry container in the form `http://registry:5000`.
- `NGINX_PROXY_HEADER_*`: Update the default Nginx configuration and set **custom headers** for your backend docker registry. Only when `NGINX_PROXY_PASS_URL` is used.
### Docker
There are some examples with [docker-compose](https://docs.docker.com/compose/) and docker-registry-ui as proxy [here](https://github.com/Joxit/docker-registry-ui/tree/main/examples/ui-as-proxy/) or docker-registry-ui as standalone [here](https://github.com/Joxit/docker-registry-ui/tree/main/examples/ui-as-standalone/).
The docker contains the source code and a node webserver in order to serve the docker-registry-ui.
#### Get the docker image
You can get the image in three ways
From sources with this command:
```sh
git clone https://github.com/Joxit/docker-registry-ui.git
# Alpine
docker build -t joxit/docker-registry-ui:latest docker-registry-ui
docker build -t joxit/docker-registry-ui:static -f docker-registry-ui/static.dockerfile docker-registry-ui
# Debian
docker build -t joxit/docker-registry-ui:debian -f docker-registry-ui/debian.dockerfile docker-registry-ui
docker build -t joxit/docker-registry-ui:static -f docker-registry-ui/debian-static.dockerfile docker-registry-ui
```
Or build with the url:
```sh
# Alpine
docker build -t joxit/docker-registry-ui:latest github.com/Joxit/docker-registry-ui
docker build -t joxit/docker-registry-ui:static -f static.dockerfile github.com/Joxit/docker-registry-ui
# Debian
docker build -t joxit/docker-registry-ui:debian -f debian.dockerfile github.com/Joxit/docker-registry-ui
docker build -t joxit/docker-registry-ui:debian-static -f debian-static.dockerfile github.com/Joxit/docker-registry-ui
```
Or pull the image from [docker hub](https://hub.docker.com/r/joxit/docker-registry-ui/):
```sh
# Alpine
docker pull joxit/docker-registry-ui:latest
docker pull joxit/docker-registry-ui:static
# Debian
docker pull joxit/docker-registry-ui:debian
docker pull joxit/docker-registry-ui:debian-static
```
#### Run the docker
To run the docker and see the website on your 80 port, try this:
```sh
docker run -d -p 80:80 joxit/docker-registry-ui
```
#### Run the static docker
Some env options are available for use this interface for only one server.
- `URL`: set the static URL to use (You will need CORS configuration). Example: `http://127.0.0.1:5000`. (`Required`)
- `REGISTRY_URL`: your docker registry URL to contact (CORS configuration is not needed). Example: `http://my-docker-container:5000`. (Can't be used with `URL`, since 0.3.2).
- `DELETE_IMAGES`: if this variable is empty or `false`, delete feature is deactivated. It is activated otherwise.
- `REGISTRY_TITLE`: Set a custom title for your user interface when using `REGISTRY_URL` (since 0.3.4)
Example with `URL` option.
```sh
docker run -d -p 80:80 -e URL=http://127.0.0.1:5000 -e DELETE_IMAGES=true joxit/docker-registry-ui:static
```
Example with `REGISTRY_URL`, this will add a proxy to your registry.
Your registry will be accessible here : `http://127.0.0.1/v2`, this will avoid CORS errors (see #25).
Be careful, `joxit/docker-registry-ui` and `registry:2` will communicate, both containers should be in the same network or use your private IP.
```sh
docker network create registry-ui-net
docker run -d --net registry-ui-net --name registry-srv registry:2
docker run -d --net registry-ui-net -p 80:80 -e REGISTRY_URL=http://registry-srv:5000 -e DELETE_IMAGES=true -e REGISTRY_TITLE="My registry" joxit/docker-registry-ui:static
```
There are some examples with [docker-compose](https://docs.docker.com/compose/) and docker-registry-ui as proxy [here](https://github.com/Joxit/docker-registry-ui/tree/master/examples/ui-as-proxy/) or docker-registry-ui as standalone [here](https://github.com/Joxit/docker-registry-ui/tree/master/examples/ui-as-standalone/).
## Using CORS
@@ -97,21 +130,18 @@ Your server should be configured to accept CORS.
If your docker registry does not need credentials, you will need to send this HEADER:
Access-Control-Allow-Origin: ['*']
Access-Control-Allow-Origin: '*'
If your docker registry need credentials, you will need to send these HEADERS (you must add the protocol `http`/`https` and the port when not default `80`/`443`):
If your docker registry need credentials, you will need to send these HEADERS:
```yml
http:
headers:
Access-Control-Allow-Origin: ['http://registry.example.com']
Access-Control-Allow-Credentials: [true]
Access-Control-Allow-Headers: ['Authorization', 'Accept']
Access-Control-Allow-Origin: '<your docker-registry-ui url>'
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: ['HEAD', 'GET', 'OPTIONS'] # Optional
```
An alternative for CORS issues is a plugin on your browser, more info [here](https://github.com/Joxit/docker-registry-ui/issues/25#issuecomment-621104846) (thank you [xmontero](https://github.com/xmontero)).
## Using delete
For deleting images, you need to activate the delete feature in your registry:
@@ -131,8 +161,6 @@ http:
Access-Control-Expose-Headers: ['Docker-Content-Digest']
```
If you are running the **static interface** don't forget the environment variable `DELETE_IMAGES`.
## Registry example
Example of docker registry configuration file:
@@ -153,9 +181,9 @@ http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
Access-Control-Allow-Origin: ['http://127.0.0.1:8000']
Access-Control-Allow-Origin: ['http://127.0.0.1:8001']
Access-Control-Allow-Methods: ['HEAD', 'GET', 'OPTIONS', 'DELETE']
Access-Control-Allow-Headers: ['Authorization', 'Accept']
Access-Control-Allow-Headers: ['Authorization']
Access-Control-Max-Age: [1728000]
Access-Control-Allow-Credentials: [true]
Access-Control-Expose-Headers: ['Docker-Content-Digest']
@@ -164,21 +192,3 @@ auth:
realm: basic-realm
path: /etc/docker/registry/htpasswd
```
## Standalone Application
If you do not want to install the docker-registry-ui on your server, you may
check out the [Electron](examples/electron/README.md) standalone application.
## All examples
- [Use docker-registry-ui as a proxy (use REGISTRY_URL)](https://github.com/Joxit/docker-registry-ui/tree/main/examples/ui-as-proxy)
- [Use docker-registry-ui as standalone (use URL)](https://github.com/Joxit/docker-registry-ui/tree/main/examples/ui-as-standalone)
- [Use docker-registry-ui with traefik](https://github.com/Joxit/docker-registry-ui/tree/main/examples/traefik)
- [Use docker-registry-ui with docker registry and Amazon s3](https://github.com/Joxit/docker-registry-ui/tree/main/examples/issue-75) ([#75](https://github.com/Joxit/docker-registry-ui/issues/75))
- [FIX revproxy to registry does not work when published under non-root url](https://github.com/Joxit/docker-registry-ui/tree/main/examples/issue-73) ([#73](https://github.com/Joxit/docker-registry-ui/issues/73))
- [Use docker-registry-ui with HTTPS](https://github.com/Joxit/docker-registry-ui/tree/main/examples/issue-20) ([#20](https://github.com/Joxit/docker-registry-ui/issues/20))
- [Unable to push image when docker-registry-ui is used as a proxy on non 80 port](https://github.com/Joxit/docker-registry-ui/tree/main/examples/issue-88) ([#88](https://github.com/Joxit/docker-registry-ui/issues/88))
- [Add custom headers bases on environment variable and/or file when the ui is used as proxy](https://github.com/Joxit/docker-registry-ui/tree/main/examples/proxy-headers) ([#89](https://github.com/Joxit/docker-registry-ui/pull/89))
- [UI showing same sha256 content digest for all tags + Delete is not working](https://github.com/Joxit/docker-registry-ui/tree/main/examples/issue-116) ([#116](https://github.com/Joxit/docker-registry-ui/issues/116))
- [Electron-based Standalone Application](https://github.com/Joxit/docker-registry-ui/tree/main/examples/electron) ([#129](https://github.com/Joxit/docker-registry-ui/pull/129))
- [Use docker-registry-ui as proxy with read-only right](https://github.com/Joxit/docker-registry-ui/tree/main/examples/read-only-auth) ([#47](https://github.com/Joxit/docker-registry-ui/issues/47))

View File

@@ -1,15 +1,3 @@
title: Docker Registry User Interface
description: The simplest and most complete UI for your private registry!
url: https://joxit.dev/docker-registry-ui
title: Docker Registry v2 User Interface
google_analytics: UA-99119327-1
remote_theme: joxit/joxit.github.io
author: Jones Magloire
twitter:
username: Joxit
instagram:
username: jox.it
defaults:
- scope:
path: ""
values:
image: /screenshot.png
theme: jekyll-theme-cayman

26
arm32v7-static.dockerfile Normal file
View File

@@ -0,0 +1,26 @@
# Copyright (C) 2016-2018 Jones Magloire @Joxit
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
FROM arm32v7/nginx
LABEL maintainer="Jones MAGLOIRE @Joxit"
WORKDIR /usr/share/nginx/html/
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
COPY dist/ /usr/share/nginx/html/
COPY dist/scripts/docker-registry-ui-static.js /usr/share/nginx/html/scripts/docker-registry-ui.js
COPY bin/entrypoint /bin
ENTRYPOINT entrypoint

View File

@@ -18,9 +18,4 @@ LABEL maintainer="Jones MAGLOIRE @Joxit"
WORKDIR /usr/share/nginx/html/
ENV NGINX_PROXY_HEADER_Host '$http_host'
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
COPY bin/entrypoint /docker-entrypoint.d/90-docker-registry-ui.sh
COPY dist/ /usr/share/nginx/html/
COPY favicon.ico /usr/share/nginx/html/

26
arm64v8-static.dockerfile Normal file
View File

@@ -0,0 +1,26 @@
# Copyright (C) 2016-2018 Jones Magloire @Joxit
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
FROM arm64v8/nginx
LABEL maintainer="Jones MAGLOIRE @Joxit"
WORKDIR /usr/share/nginx/html/
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
COPY dist/ /usr/share/nginx/html/
COPY dist/scripts/docker-registry-ui-static.js /usr/share/nginx/html/scripts/docker-registry-ui.js
COPY bin/entrypoint /bin
ENTRYPOINT entrypoint

View File

@@ -18,9 +18,4 @@ LABEL maintainer="Jones MAGLOIRE @Joxit"
WORKDIR /usr/share/nginx/html/
ENV NGINX_PROXY_HEADER_Host '$http_host'
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
COPY bin/entrypoint /docker-entrypoint.d/90-docker-registry-ui.sh
COPY dist/ /usr/share/nginx/html/
COPY favicon.ico /usr/share/nginx/html/

View File

@@ -1,37 +1,19 @@
#!/bin/sh
sed -i "s,\${REGISTRY_URL},${REGISTRY_URL}," index.html
sed -i "s,\${REGISTRY_TITLE},${REGISTRY_TITLE}," index.html
sed -i "s,\${PULL_URL},${PULL_URL}," index.html
sed -i "s,\${SINGLE_REGISTRY},${SINGLE_REGISTRY}," index.html
sed -i "s/\${CATALOG_ELEMENTS_LIMIT}/${CATALOG_ELEMENTS_LIMIT}/" index.html
sed -i "s/\${SHOW_CONTENT_DIGEST}/${SHOW_CONTENT_DIGEST}/" index.html
$@
sed -i "s,\${URL},${URL}," scripts/docker-registry-ui.js
sed -i "s,\${REGISTRY_TITLE},${REGISTRY_TITLE}," scripts/docker-registry-ui.js
if [ -z "${DELETE_IMAGES}" ] || [ "${DELETE_IMAGES}" = false ] ; then
sed -i "s/\${DELETE_IMAGES}/false/" index.html
else
sed -i "s/\${DELETE_IMAGES}/true/" index.html
sed -i "s/registryUI.isImageRemoveActivated *= *[^,;]*/registryUI.isImageRemoveActivated=false/" scripts/docker-registry-ui.js
fi
get_nginx_proxy_headers() {
(
env &&
if [ -f "/etc/nginx/.env" ]; then
cat /etc/nginx/.env
# Force new line
echo ""
fi
) | while read e; do
if [ -n "$(echo $e | grep -o '^NGINX_PROXY_HEADER_')" ]; then
key=$(echo ${e%%=*} | sed 's/^NGINX_PROXY_HEADER_//' | sed 's/_/-/g')
value=${e#*=}
echo -n "proxy_set_header ${key} \"${value}\"; "
fi
done
}
if [ -n "${NGINX_PROXY_PASS_URL}" ] ; then
sed -i "s,\${NGINX_PROXY_PASS_URL},${NGINX_PROXY_PASS_URL}," /etc/nginx/conf.d/default.conf
sed -i "s^\${NGINX_PROXY_HEADERS}^$(get_nginx_proxy_headers)^" /etc/nginx/conf.d/default.conf
if [ -n "${REGISTRY_URL}" ] ; then
sed -i "s,\${REGISTRY_URL},${REGISTRY_URL}," /etc/nginx/conf.d/default.conf
sed -i "s,#!,," /etc/nginx/conf.d/default.conf
fi
if [ -z "$@" ]; then
nginx -g "daemon off;"
else
$@
fi

View File

@@ -1,21 +0,0 @@
#!/bin/sh
for i in alpine chronograf:alpine consul debian jawg/mapnik3 nginx:alpine postgres:alpine redis:alpine telegraf:alpine joxit/docker-registry-ui joxit/kosmtik joxit/node joxit/rust-openssl joxit/tile-server-ui; do
docker pull $i
docker tag $i 127.0.0.1:5000/$i
docker push 127.0.0.1:5000/$i
done
for i in arm64v8 arm32v7 master latest debian main; do
docker pull joxit/docker-registry-ui:$i
docker tag joxit/docker-registry-ui:$i 127.0.0.1:5000/joxit/docker-registry-ui:$i
docker push 127.0.0.1:5000/joxit/docker-registry-ui:$i
done
for v in 1.1 1.2 1.3 1.4 1.5 2.0 ; do
for type in "-debian" ""; do
docker pull joxit/docker-registry-ui:$v$type
docker tag joxit/docker-registry-ui:$v$type 127.0.0.1:5000/joxit/docker-registry-ui:$v$type
docker push 127.0.0.1:5000/joxit/docker-registry-ui:$v$type
done
done

26
debian-static.dockerfile Normal file
View File

@@ -0,0 +1,26 @@
# Copyright (C) 2016-2018 Jones Magloire @Joxit
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
FROM nginx:latest
LABEL maintainer="Jones MAGLOIRE @Joxit"
WORKDIR /usr/share/nginx/html/
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
COPY dist/ /usr/share/nginx/html/
COPY dist/scripts/docker-registry-ui-static.js /usr/share/nginx/html/scripts/docker-registry-ui.js
COPY bin/entrypoint /bin
ENTRYPOINT entrypoint

View File

@@ -18,9 +18,4 @@ LABEL maintainer="Jones MAGLOIRE @Joxit"
WORKDIR /usr/share/nginx/html/
ENV NGINX_PROXY_HEADER_Host '$http_host'
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
COPY bin/entrypoint /docker-entrypoint.d/90-docker-registry-ui.sh
COPY dist/ /usr/share/nginx/html/
COPY favicon.ico /usr/share/nginx/html/

View File

@@ -1,5 +1,5 @@
<!--
Copyright (C) 2016-2018 Jones Magloire @Joxit
Copyright (C) 2016 Jones Magloire @Joxit
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
@@ -19,37 +19,20 @@
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="../dist/docker-registry-ui.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta property="og:locale" content="en_US" />
<meta name="description"
content="This is the live demo for Docker Registry User Interface. Try it now! Sources : https://github.com/Joxit/docker-registry-ui" />
<meta property="og:description"
content="This is the live demo for Docker Registry User Interface. Try it now! Sources : https://github.com/Joxit/docker-registry-ui" />
<link rel="canonical" href="https://joxit.dev/docker-registry-ui/demo/" />
<meta property="og:url" content="https://joxit.dev/docker-registry-ui/demo/" />
<meta property="og:site_name" content="Live Demo | Docker Registry User Interface" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@Joxit" />
<meta name="twitter:creator" content="@Jones Magloire" />
<title>Live Demo | Docker Registry User Interface</title>
<link rel="stylesheet" href="../dist/vendor.css">
<link rel="stylesheet" href="../dist/style.css">
<link href="https://fonts.googleapis.com/css?family=Roboto:regular,bold,italic,thin,light,bolditalic,black,medium&amp;lang=en" rel="stylesheet" type="text/css">
<title>Docker Registry UI</title>
</head>
<body>
<docker-registry-ui registry-url="" name="Demo Docker Registry UI" pull-url="" show-content-digest="true"
is-image-remove-activated="true" catalog-elements-limit="1000" single-registry="false">
<script>
if (!localStorage.getItem('registryServer')) {
localStorage.setItem('registryServer', JSON.stringify([
'https://raw.githubusercontent.com/Joxit/docker-registry-ui/master/demo'
]))
}
</script>
<script src="../dist/docker-registry-ui.js"></script>
<app></app>
<script src="../dist/scripts/vendor.js"></script>
<script src="../dist/scripts/docker-registry-ui.js"></script>
<script>
(function (i, s, o, g, r, a, m) {
(function(i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function () {
i[r] = i[r] || function() {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),

View File

@@ -1,3 +0,0 @@
{
"repositories": ["alpine", "debian", "joxit/docker-registry-ui", "joxit/kosmtik", "joxit/node", "joxit/rust-openssl", "joxit/tile-server-ui", "nginx"]
}

View File

@@ -1 +0,0 @@
{"architecture":"amd64","config":{"Hostname":"","Domainname":"","User":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Cmd":["/bin/sh"],"ArgsEscaped":true,"Image":"sha256:49573004c44f9413c7db63cbab336356e7a8843139fca5e68f92d84a56f0e6df","Volumes":null,"WorkingDir":"","Entrypoint":null,"OnBuild":null,"Labels":null},"container":"c44d11fa67899a984d66f5542092b474f11ca95cc9b03b1470546f16ec8ce74f","container_config":{"Hostname":"c44d11fa6789","Domainname":"","User":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Cmd":["/bin/sh","-c","#(nop) ","CMD [\"/bin/sh\"]"],"ArgsEscaped":true,"Image":"sha256:49573004c44f9413c7db63cbab336356e7a8843139fca5e68f92d84a56f0e6df","Volumes":null,"WorkingDir":"","Entrypoint":null,"OnBuild":null,"Labels":{}},"created":"2018-12-21T00:21:30.122610396Z","docker_version":"18.06.1-ce","history":[{"created":"2018-12-21T00:21:29.97055571Z","created_by":"/bin/sh -c #(nop) ADD file:2ff00caea4e83dfade726ca47e3c795a1e9acb8ac24e392785c474ecf9a621f2 in / "},{"created":"2018-12-21T00:21:30.122610396Z","created_by":"/bin/sh -c #(nop) CMD [\"/bin/sh\"]","empty_layer":true}],"os":"linux","rootfs":{"type":"layers","diff_ids":["sha256:7bff100f35cb359a368537bb07829b055fe8e0b1cb01085a3a628ae9c187c7b8"]}}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":1511,"digest":"sha256:3f53bb00af943dfdf815650be70c0fa7b426e56a66f5e3362b47a129d57d5991"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2207025,"digest":"sha256:cd784148e3483c2c86c50a48e535302ab0288bebd587accf40b714fffd0646b3"}]}

View File

@@ -1 +0,0 @@
{"name":"alpine","tags":["latest"]}

View File

@@ -1 +0,0 @@
{"architecture":"amd64","config":{"Hostname":"","Domainname":"","User":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Cmd":["bash"],"ArgsEscaped":true,"Image":"sha256:438932f21637c6a0ba3eeb7e66caf4e92259f324ac99978c8ad9277ade8aa220","Volumes":null,"WorkingDir":"","Entrypoint":null,"OnBuild":null,"Labels":null},"container":"c57ac0acf33cb00abdd905d916191ae4156ab0ff8116d71da3cd08a19303ab72","container_config":{"Hostname":"c57ac0acf33c","Domainname":"","User":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Cmd":["/bin/sh","-c","#(nop) ","CMD [\"bash\"]"],"ArgsEscaped":true,"Image":"sha256:438932f21637c6a0ba3eeb7e66caf4e92259f324ac99978c8ad9277ade8aa220","Volumes":null,"WorkingDir":"","Entrypoint":null,"OnBuild":null,"Labels":{}},"created":"2018-12-28T23:29:38.226681736Z","docker_version":"18.06.1-ce","history":[{"created":"2018-12-28T23:29:37.981962131Z","created_by":"/bin/sh -c #(nop) ADD file:da71baf0d22cb2ede91c5e3ff959607e47459a9d7bda220a62a3da362b0e59ea in / "},{"created":"2018-12-28T23:29:38.226681736Z","created_by":"/bin/sh -c #(nop) CMD [\"bash\"]","empty_layer":true}],"os":"linux","rootfs":{"type":"layers","diff_ids":["sha256:c581f4ede92df7272da388a45126ddd2944a4eeb27d3b0d80ee71cd633761394"]}}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":1503,"digest":"sha256:de8b49d4b0b316649307dcdda2ca0c6127f8ccdaa9c3fda6fdb21cb237cfafd8"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":45323792,"digest":"sha256:cd8eada9c7bb496eb685fc6d2198c33db7cb05daf0fde42e4cf5bf0127cbdf38"}]}

View File

@@ -1 +0,0 @@
{"name":"debian","tags":["latest"]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":9149,"digest":"sha256:b819859c9b57b5b93dc1229ffe0e1e8aa9ec66470f04e97162a8009635f6e90c"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2065537,"digest":"sha256:ff3a5c916c92643ff77519ffa742d3ec61b7f591b6b7504599d95a4a41134e28"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":5793952,"digest":"sha256:b4f3ef22ce5b66e7231a887f75949353361d0af7b53ebcdc32eaaf77cbb2e2aa"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":487,"digest":"sha256:8a6541d11dc3512a4db5c2d5e0e5b7542775b7e14c088ce6fb993262715748ae"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":625,"digest":"sha256:7e869e2dcf68e1ed911813a96254fde3ff58cbf1e0641ffb68c36275f8c68c40"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":367435,"digest":"sha256:070e88cc35da784dd4a109fd1d142c662047a5bfeaa1ae506faf0ba9846488ff"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":7797,"digest":"sha256:754e7e39c291e2100cc06c9e82ae2623a60baf691b89a32f8ed655a183da1cb8"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22488979,"digest":"sha256:2a72cbf407d67c7a7a76dd48e432091678e297140dce050ad5eccad918a9f8d6"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":21993443,"digest":"sha256:eccc107d7abd0e70046b82b73d5e5d53ec33fd6a0bef8231c52be2f3486ca32f"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":203,"digest":"sha256:76aa3935d77c8c436652580479edcefd91e627507a356e957583dd12215a56e7"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":367436,"digest":"sha256:48ec57ac365e0f96a48f1735a24d3a5bcf413f95608afab68ca829557dba735b"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":1152,"digest":"sha256:dd56f3a8b1e5ee2fe325315f1d917ee68dbc1307d31de97fd43483200fd7228c"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2658,"digest":"sha256:edf9db7a138d7bfad8daaab3fd1b8e6a9388a52296e994c15407726a724be28c"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":324,"digest":"sha256:3f836ed58dd9893c844659695dde107b6da293ae3d2597f45ae04b07d9557d14"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":8946,"digest":"sha256:ce073450cb3197130310d433019f0ec24fc016a407ae4158b288bfff6aa3946c"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2065537,"digest":"sha256:ff3a5c916c92643ff77519ffa742d3ec61b7f591b6b7504599d95a4a41134e28"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":5833353,"digest":"sha256:d81b148fab7c3ce295657d0f8b621824e7afc19a8edd4abbf20b9dbafb2f62c7"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":490,"digest":"sha256:f9fe12447daf15e667ba4c67d66c585ac07273748d5ccf78af1544e67324953b"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":625,"digest":"sha256:ad017fd52da2cac5b962bc191e9d40397b93e73027d21240477274d154784222"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":336683,"digest":"sha256:c451cab73ccbd177e68a2e3a9583fa52e5542f049602ed4a4645de5afa6dc51b"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":6480,"digest":"sha256:0132a9e0699727a863cdddaae3ffe1bfb312267f0df732ce06d623ca2f1afd4a"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22485906,"digest":"sha256:be8881be8156e4068e611fe956aba2b9593ebd953be14fb7feea6d0659aa3abe"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22136082,"digest":"sha256:f2f27ed9664fca45cca0897d7a818800b7d32e1a9c0bdc4a1e604702235280b7"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":204,"digest":"sha256:54ff137eb1b2178cb9419bd77a59b6a4504633b35552853f98ff4043d3c2dbdc"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":337679,"digest":"sha256:e7492ce1c3ddb80ab146f812402e72f59870a985f58c941b2ee83c62ad991a28"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":7729,"digest":"sha256:ef410ecc797305dca1b53549b3a312c004383aa07f8940010186e80f73512cbe"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22485906,"digest":"sha256:be8881be8156e4068e611fe956aba2b9593ebd953be14fb7feea6d0659aa3abe"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22136082,"digest":"sha256:f2f27ed9664fca45cca0897d7a818800b7d32e1a9c0bdc4a1e604702235280b7"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":204,"digest":"sha256:54ff137eb1b2178cb9419bd77a59b6a4504633b35552853f98ff4043d3c2dbdc"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":849,"digest":"sha256:85edb5c9337e21b3304835b12303939765a072a76c843b2bf6ba44d4aa5e94e1"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":337678,"digest":"sha256:931efc7de8127dac6dbeec134a0aafc60c6e5bc7f2ad65b4ede8a64bbabb0d5b"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":1559,"digest":"sha256:d8a17ffe5e89a81a91ff07fbf122f8b7a2f506e90290c9a2b9832978cbb44d60"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":3478,"digest":"sha256:5cbcf112f2890dfc7de50f2b88bd0034086df622f9897520a138b16de641da81"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":396,"digest":"sha256:b56928aad9e6208a2dcdbbdf888426b01f45951023fbf36e5a68935e69881e72"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":10108,"digest":"sha256:f2877265a11b58f17667b21decee7620b61e71ca49c84ebc1e83903488de10a1"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2065537,"digest":"sha256:ff3a5c916c92643ff77519ffa742d3ec61b7f591b6b7504599d95a4a41134e28"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":5833353,"digest":"sha256:d81b148fab7c3ce295657d0f8b621824e7afc19a8edd4abbf20b9dbafb2f62c7"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":490,"digest":"sha256:f9fe12447daf15e667ba4c67d66c585ac07273748d5ccf78af1544e67324953b"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":625,"digest":"sha256:ad017fd52da2cac5b962bc191e9d40397b93e73027d21240477274d154784222"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":837,"digest":"sha256:16ddc778553afbb993045d7715fd5a9b5aad5072d800e2697399c603c68c3cb4"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":336681,"digest":"sha256:2dfdd1d29d5ef4542da752163bba25fdf013f81c5d484b08048bf394f6c5f18f"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":1391,"digest":"sha256:8fc6f767674523231f11387c8f7922f8aba2fc8fa29dcbf81aefeee58481bfa8"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2831,"digest":"sha256:0734f165b9fb13d0a84a9d8d1855ddf62ac48059ab36ba1057c164004afb4703"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":398,"digest":"sha256:061c54bddde125bfea18a9963885a5d4fe50117c906e51767da143132a3c460a"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":10105,"digest":"sha256:34754f5270032ae9cad70c6e58c53c5f07e7d7db4c407725d96d8743f98dfd7d"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2065537,"digest":"sha256:ff3a5c916c92643ff77519ffa742d3ec61b7f591b6b7504599d95a4a41134e28"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":5833353,"digest":"sha256:d81b148fab7c3ce295657d0f8b621824e7afc19a8edd4abbf20b9dbafb2f62c7"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":490,"digest":"sha256:f9fe12447daf15e667ba4c67d66c585ac07273748d5ccf78af1544e67324953b"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":625,"digest":"sha256:ad017fd52da2cac5b962bc191e9d40397b93e73027d21240477274d154784222"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":849,"digest":"sha256:facc1257cc264ce12d5795c28e6ac649a7dfc1934bd9588840eba2253862cace"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":337516,"digest":"sha256:ab8f1df833c2ca3c50cb6b451cc389996189711dfe1b92003a3d728b81801c84"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":1405,"digest":"sha256:e1c71178faffa529cd4c3184a838bef49b0aaaa37961192ae5106d0cac6ec1cb"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":3475,"digest":"sha256:25e24a94b69c21099696902824a2c9b5b2702142daf2ceff7b7503df497c6ce0"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":403,"digest":"sha256:13c745ae3f2db9ef4ab95f74227d9d17b7ad57d359936402cd1b15bd118cc091"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":10105,"digest":"sha256:34754f5270032ae9cad70c6e58c53c5f07e7d7db4c407725d96d8743f98dfd7d"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2065537,"digest":"sha256:ff3a5c916c92643ff77519ffa742d3ec61b7f591b6b7504599d95a4a41134e28"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":5833353,"digest":"sha256:d81b148fab7c3ce295657d0f8b621824e7afc19a8edd4abbf20b9dbafb2f62c7"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":490,"digest":"sha256:f9fe12447daf15e667ba4c67d66c585ac07273748d5ccf78af1544e67324953b"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":625,"digest":"sha256:ad017fd52da2cac5b962bc191e9d40397b93e73027d21240477274d154784222"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":849,"digest":"sha256:facc1257cc264ce12d5795c28e6ac649a7dfc1934bd9588840eba2253862cace"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":337516,"digest":"sha256:ab8f1df833c2ca3c50cb6b451cc389996189711dfe1b92003a3d728b81801c84"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":1405,"digest":"sha256:e1c71178faffa529cd4c3184a838bef49b0aaaa37961192ae5106d0cac6ec1cb"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":3475,"digest":"sha256:25e24a94b69c21099696902824a2c9b5b2702142daf2ceff7b7503df497c6ce0"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":403,"digest":"sha256:13c745ae3f2db9ef4ab95f74227d9d17b7ad57d359936402cd1b15bd118cc091"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":8860,"digest":"sha256:c3cca97469edb8874197c306de569fd0b73aef8269fbd6847f0b6bb6e7992fbf"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2206931,"digest":"sha256:4fe2ade4980c2dda4fc95858ebb981489baec8c1e4bd282ab1c3560be8ff9bde"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":5530797,"digest":"sha256:e11b023b07a0c222dd4ef40e7e270c629d028264dfe1f538f9f831d13a8991c0"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":492,"digest":"sha256:aaf7d5908de55e0233f57e802d18f47b9d869fb801c9125760cc61ae90fccc46"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":625,"digest":"sha256:8ae3a5ca453fd6da9b2a361117bd3d39eb01c46c85b368a2f2ef30f4ecdf984b"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":338157,"digest":"sha256:02155856a84cf21280e5ed8b806d1447b00105df3161a8d793fbcb7fe9f0360e"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":6478,"digest":"sha256:59752d8484e28e7cc78367e041dae9abf901e4a1463cecbe7c8da1d8b1b8bf1f"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22486277,"digest":"sha256:a5a6f2f73cd8abbdc55d0df0d8834f7262713e87d6c8800ea3851f103025e0f0"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22204196,"digest":"sha256:67da5fbcb7a04397eda35dccb073d8569d28de13172fbd569fbb7a3e30b5886b"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":203,"digest":"sha256:e82455fa5628738170735528c8db36567b5423ec59802a1e2c084ed42b082527"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":338162,"digest":"sha256:2979df83f4504ccb29308f0f8fea2e56951e922a9b34a1169e4e76a22560d176"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":7467,"digest":"sha256:462e63a3ccc5313f27bd7645fa9724bd285f079fa7eddd85ba216b7533d15dde"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22486277,"digest":"sha256:a5a6f2f73cd8abbdc55d0df0d8834f7262713e87d6c8800ea3851f103025e0f0"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22204196,"digest":"sha256:67da5fbcb7a04397eda35dccb073d8569d28de13172fbd569fbb7a3e30b5886b"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":203,"digest":"sha256:e82455fa5628738170735528c8db36567b5423ec59802a1e2c084ed42b082527"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":850,"digest":"sha256:a102fc4519113b2ad5ac7d964d20745a482654bb7a3c8a3b36fde6092106ff86"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":338163,"digest":"sha256:5c28bbe963b7cc7f9d97628af365f72ae51358f532c9ca42f684e931d15a7b4c"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":4365,"digest":"sha256:32bc94f83df4c411010dd99a05f45417c21fb7617a26d50cf57649d69e33f868"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":404,"digest":"sha256:55de73db13412a14ce428b178e2ff2bcb42999e72637af8fccfe9fd1b69410a0"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":9851,"digest":"sha256:945480c91d321706c01b9c7008416f0e6567e571748ff0322120587bb28a2011"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2206931,"digest":"sha256:4fe2ade4980c2dda4fc95858ebb981489baec8c1e4bd282ab1c3560be8ff9bde"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":5530797,"digest":"sha256:e11b023b07a0c222dd4ef40e7e270c629d028264dfe1f538f9f831d13a8991c0"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":492,"digest":"sha256:aaf7d5908de55e0233f57e802d18f47b9d869fb801c9125760cc61ae90fccc46"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":625,"digest":"sha256:8ae3a5ca453fd6da9b2a361117bd3d39eb01c46c85b368a2f2ef30f4ecdf984b"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":844,"digest":"sha256:37aead32428f258f5900860894cd830f000c23d399a80542c749424120686dc9"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":338152,"digest":"sha256:a119cc63d3799c5ae645ebe394f873398f9ad9d71210d5ab9a1c21f44f2bce10"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":4354,"digest":"sha256:eee0c92191cf651ee872239596d12b459887e7df2411effab2638781deb92369"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":406,"digest":"sha256:867bd0ae6cb9d27d0ab562e993bf20a37bb07c791ba563f8bae4a3cf29a45147"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":8861,"digest":"sha256:2f5177a4cf41c3f737b5b1bd6b4adcaf311d323dcbb742c662ba5c769083ed21"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2206931,"digest":"sha256:4fe2ade4980c2dda4fc95858ebb981489baec8c1e4bd282ab1c3560be8ff9bde"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":5535581,"digest":"sha256:2963b79251cbc43763339016369cd0d6b2dbe2a6f799e9936259cfa407bf93e4"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":492,"digest":"sha256:8ce2a7ad052e8e390c30ff41a6faa0ce5de42cb8b2082ef78f8695cbb43d7bf7"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":630,"digest":"sha256:8571e73c6abf7d274f5feb87bf7cc9d0b7a0d63ee4e89b7368ee46a69ac644df"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":338327,"digest":"sha256:7388f741e300450dfe68076f0fa57ac2e68601edf6369972cef9c8c4f1b0e3c6"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":6479,"digest":"sha256:4d7df6f655fbb4e47f0103a39daf2e54944d66c28e3199aa92a924c8d95ad963"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22486277,"digest":"sha256:a5a6f2f73cd8abbdc55d0df0d8834f7262713e87d6c8800ea3851f103025e0f0"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22205174,"digest":"sha256:1ba02017c4b278fe664e669af5e2eff59f92259df6c2f15261f150ae66599dff"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":203,"digest":"sha256:33b176c904dea23b745303a0a69511750d009ac04fd9957520975a0546a67799"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":338334,"digest":"sha256:210740d9628021157f51c55d4510546827ec64d5ee4b5105f85f0b0b5168c110"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":7468,"digest":"sha256:84955175fe3ab1375d60676e1f5db6b0e0b87a28412587823c20ecc527e9b5a5"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22486277,"digest":"sha256:a5a6f2f73cd8abbdc55d0df0d8834f7262713e87d6c8800ea3851f103025e0f0"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22205174,"digest":"sha256:1ba02017c4b278fe664e669af5e2eff59f92259df6c2f15261f150ae66599dff"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":203,"digest":"sha256:33b176c904dea23b745303a0a69511750d009ac04fd9957520975a0546a67799"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":848,"digest":"sha256:89b978a407e7a40b978a660beda40732992205c08783d6d82a36c9d853c32eb7"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":338334,"digest":"sha256:d22dba22a2a1cadba0d64dae0c20af3d526889be63cf21d9ac3370ff686da9ad"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":4496,"digest":"sha256:667e5eef933b5ef05fa18ecc2460fb54d3848b45afc5bc54cdfa9f8815926231"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":407,"digest":"sha256:3212b1bf2d6fd71145d96cd58f97f5c969990f0fb13b26c858c0ed394593ade8"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":9851,"digest":"sha256:7ce20c30831e04cafbb566ddad63b8131d46ed4ad89703e582892827dbf4e74b"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2206931,"digest":"sha256:4fe2ade4980c2dda4fc95858ebb981489baec8c1e4bd282ab1c3560be8ff9bde"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":5535581,"digest":"sha256:2963b79251cbc43763339016369cd0d6b2dbe2a6f799e9936259cfa407bf93e4"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":492,"digest":"sha256:8ce2a7ad052e8e390c30ff41a6faa0ce5de42cb8b2082ef78f8695cbb43d7bf7"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":630,"digest":"sha256:8571e73c6abf7d274f5feb87bf7cc9d0b7a0d63ee4e89b7368ee46a69ac644df"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":851,"digest":"sha256:ff6934e8e0afdd8ee4b488caead0c14481f04400b0360e35b3245696a2b5ed01"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":338325,"digest":"sha256:a65364be63290b59c6f8260562a37aad9d34e8d512ffba348288bbbda86b63a4"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":4490,"digest":"sha256:3b427d5d88172713b95a9df65f52147d64aa017a4d9025ce84cfd3ddf97a6942"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":406,"digest":"sha256:4310e646fa174dbb3d370f64f0e166c1b3b3d8cc1b5e377b1b899f69e2e01f09"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":8856,"digest":"sha256:eeff01f7246318a77165269b13a96f3f75c125c731c41345d53945ab93e52566"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2207025,"digest":"sha256:cd784148e3483c2c86c50a48e535302ab0288bebd587accf40b714fffd0646b3"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":5535735,"digest":"sha256:6e3058b2db8a6014d1395fbf478446e8af611c39df514978c66f23394871b006"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":494,"digest":"sha256:7ca4d29669c121345b3ecaddc9f6908c05b6de3c6ef9773f677fecb7d0f895d7"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":628,"digest":"sha256:a14cf6997716d72a070dca609539a16e09938e066f18bb9a69f5d0c2ac2a28ac"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":375645,"digest":"sha256:793d043bf13fca331b3ba849e4c11e6a98a2551a8f59e1493d18541c232d1144"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":6475,"digest":"sha256:2d6b75e8020ef2000d6a838fbd82a91baf63b43810d42ff34e75c0a837235b7a"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22492916,"digest":"sha256:177e7ef0df6987e0c5738a1fb5aba98b6b6e7a5fef992e481977dbb5ba3f91be"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22229779,"digest":"sha256:ea57c53235dfe1ae1db219ca7cda6210c8f875367bcb892fdc6d86c047174f3d"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":204,"digest":"sha256:bbdb1fbd4a86c36dbc219ff18eba7a332d7a41a4101731874da06a708d4db2f9"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":375627,"digest":"sha256:9ce61e0bb14ec7df51569f5e55eb087112ea553e0a3b2fb1be80bc3e724f60fd"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":7464,"digest":"sha256:7fa0b3bfaac3de30a8459bb0686a50ca641ebcc941bf22cca83dd5f3bf472634"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22492916,"digest":"sha256:177e7ef0df6987e0c5738a1fb5aba98b6b6e7a5fef992e481977dbb5ba3f91be"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22229779,"digest":"sha256:ea57c53235dfe1ae1db219ca7cda6210c8f875367bcb892fdc6d86c047174f3d"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":204,"digest":"sha256:bbdb1fbd4a86c36dbc219ff18eba7a332d7a41a4101731874da06a708d4db2f9"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":848,"digest":"sha256:45179b79be5c6fbf3f1176de20d772bd694d90ca8dd52471eb139fe02eb04194"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":375629,"digest":"sha256:a12ff02db17ad323cf329c843dd5e67d4a9f44e508a57a2c72ee28cc291132cb"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":6007,"digest":"sha256:7984baab26ca42eeb16e0525b7b826bec1a076affbd4b2dc9a163e6b9cb12f73"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":406,"digest":"sha256:28fa86d77aaa757604367a399848b8fb2b5f2522dbf93362f98b90a862bf6d47"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":9846,"digest":"sha256:4c9dddf8f39953b1860e83b94ef4c0d452d10a550c1e285feca965cc579d2535"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2207025,"digest":"sha256:cd784148e3483c2c86c50a48e535302ab0288bebd587accf40b714fffd0646b3"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":5535735,"digest":"sha256:6e3058b2db8a6014d1395fbf478446e8af611c39df514978c66f23394871b006"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":494,"digest":"sha256:7ca4d29669c121345b3ecaddc9f6908c05b6de3c6ef9773f677fecb7d0f895d7"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":628,"digest":"sha256:a14cf6997716d72a070dca609539a16e09938e066f18bb9a69f5d0c2ac2a28ac"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":847,"digest":"sha256:9b1b1f04343aa8ac9b80d2639e15059f4020416c7b903a8f23bf67020cf7e269"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":375642,"digest":"sha256:69adc4ca8736ed24567022546eb0860d83a0f870e0f1e602aa1df47f8b90aa74"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":6000,"digest":"sha256:79cfc386aadc6a2656903749ce209ab371ab023c3b8d7d4d6349b02f20787ef2"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":407,"digest":"sha256:e460318f7cf41f40ad0103a8495bf1cb8588717324ac1939cc901341432e2dcd"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":8851,"digest":"sha256:a3e584d825fe8eeb54d05c3c2cb184136558a4301cdc4799c1a96aa05566e92b"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2207025,"digest":"sha256:cd784148e3483c2c86c50a48e535302ab0288bebd587accf40b714fffd0646b3"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":5535735,"digest":"sha256:6e3058b2db8a6014d1395fbf478446e8af611c39df514978c66f23394871b006"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":494,"digest":"sha256:7ca4d29669c121345b3ecaddc9f6908c05b6de3c6ef9773f677fecb7d0f895d7"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":628,"digest":"sha256:a14cf6997716d72a070dca609539a16e09938e066f18bb9a69f5d0c2ac2a28ac"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":377015,"digest":"sha256:a3a156b14fd56dbf9ba045bf6cb8c31e31b318fefc8933ff5274ead99cb2b834"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":6476,"digest":"sha256:cf0be3e61be825c41365df2c3352164d3b040a1da28751366eab290c6bba317f"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22500707,"digest":"sha256:5e6ec7f28fb77f84f64b8c29fcb0a746260563f5858315e3e9fcc4aee2844840"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22229795,"digest":"sha256:ab804f9bbcbe56bd453382373757c73b0d02efb6beadca0e45a4558911a87594"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":203,"digest":"sha256:052b395f16bcb36d7f7781a596a831139187760b6cbadf61b5b731bbc41d2690"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":377005,"digest":"sha256:865c1ca206935a9f8fb2bd9ccb2b519f203e6e20c2eb41646d523ba2a0d1f2f9"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":7465,"digest":"sha256:2a5c152cf2a21986771311045ca67caf98f14c3e913a27582f8db1dd840e02f1"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22500707,"digest":"sha256:5e6ec7f28fb77f84f64b8c29fcb0a746260563f5858315e3e9fcc4aee2844840"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22229795,"digest":"sha256:ab804f9bbcbe56bd453382373757c73b0d02efb6beadca0e45a4558911a87594"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":203,"digest":"sha256:052b395f16bcb36d7f7781a596a831139187760b6cbadf61b5b731bbc41d2690"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":849,"digest":"sha256:cb43f84713f5e841dcd7f312b2f988ae02702dd0c990000afc678fab248101be"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":377006,"digest":"sha256:a9494c5d0b2dba4920c780143506a3027927083e5916ddd0c0847f8dd7b60812"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":6392,"digest":"sha256:70538cb8711ad9edb0527210b6121cb68516d525dabecee93a445c77b80d8cfc"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":407,"digest":"sha256:31a64bf1f1cf5d50ebbfebffc095a62f1c93c06383f4d9380ccfcd8de79a0bb6"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":8853,"digest":"sha256:2fa0503f7f85b8983aba5f3a9dcec6b81f8acd38ce90fa419ca0ea0c8cd1d8b5"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2206931,"digest":"sha256:4fe2ade4980c2dda4fc95858ebb981489baec8c1e4bd282ab1c3560be8ff9bde"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":5530797,"digest":"sha256:e11b023b07a0c222dd4ef40e7e270c629d028264dfe1f538f9f831d13a8991c0"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":492,"digest":"sha256:aaf7d5908de55e0233f57e802d18f47b9d869fb801c9125760cc61ae90fccc46"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":625,"digest":"sha256:8ae3a5ca453fd6da9b2a361117bd3d39eb01c46c85b368a2f2ef30f4ecdf984b"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":377030,"digest":"sha256:ec6cd7a681db3e146e84b6f55ebb9bb65b239bf136eb9e1fe2f34535d7403f65"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":6474,"digest":"sha256:4672df90c399a1bf61e08f122bff303fd3059febd8c4dfdfdd68a016037122bb"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":19290286,"digest":"sha256:433444f4a04d4a68d83dfe1e90ccfe3d02ce163939e9b79dd87136d956b49408"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":20866281,"digest":"sha256:e49a2ddf3ab62320cdd67133efc4f6dc118cc2850342dd59b6d0696b27f36219"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":203,"digest":"sha256:08ac71c06960d1eaaadee6cefc2b407d73efecb8f0226389a6848fa0f0066fd7"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":377003,"digest":"sha256:bc5b4c34ddd8cf4ec5bf41bb7f2694e6318942514d845d215cab5606bfb91b99"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":7464,"digest":"sha256:de14ee479e35115c64364936038c81c1d808f2e205a9d0f42c326124e281442f"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":19290286,"digest":"sha256:433444f4a04d4a68d83dfe1e90ccfe3d02ce163939e9b79dd87136d956b49408"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":20866281,"digest":"sha256:e49a2ddf3ab62320cdd67133efc4f6dc118cc2850342dd59b6d0696b27f36219"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":203,"digest":"sha256:08ac71c06960d1eaaadee6cefc2b407d73efecb8f0226389a6848fa0f0066fd7"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":849,"digest":"sha256:249b013a881e3bccbd19c94e697d13c1a2637d8142d71e515526cc83f6fc56f9"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":377004,"digest":"sha256:67a91d1b3f91d8473b77079f8967d72ff1fcbc96140c385d6759a04097546802"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":6396,"digest":"sha256:83276734f51d9516703b7c68e3a4e9ae5e6980baf98a444f2dadda587f21575e"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":404,"digest":"sha256:065858ce5f6e323493ef6023e6ceba4ecbf4c2d4a42b23d3a8a5f61a31435f58"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":6474,"digest":"sha256:9f812386d08a3a898429f4ff1b2e350c24a4fb46f4b038defb122c4739647bbc"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":20350180,"digest":"sha256:711c3a2baeda87a6b9816cb812388d62d17396034e595a68d8ee5f938f9d77b3"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":21575316,"digest":"sha256:09af038856219494746875334915109e7d1ce0957e692851dd05f75ed79c1818"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":203,"digest":"sha256:3584b4893c02d9e62f192640c94bc29cd4ece947e5c6ba49c4e37f68a932b643"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":377005,"digest":"sha256:5ea25953dbeb169cd709bb22a91f4b7bc679c68eb46538952efa32561bf7c0a1"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":7464,"digest":"sha256:3598d6b8ab493a927c29106bfc54a61bef9b9dfc0ce3703f815678b7ede10133"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":20350180,"digest":"sha256:711c3a2baeda87a6b9816cb812388d62d17396034e595a68d8ee5f938f9d77b3"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":21575316,"digest":"sha256:09af038856219494746875334915109e7d1ce0957e692851dd05f75ed79c1818"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":203,"digest":"sha256:3584b4893c02d9e62f192640c94bc29cd4ece947e5c6ba49c4e37f68a932b643"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":847,"digest":"sha256:97a13a3d30dfed6b13f3a95d304b07733cd2a78482ebfead6c5a19edc9f946da"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":377005,"digest":"sha256:9d9b865d96a7d6385f87b1a957e9c8057ffe75cedc10c1919a2a76d5c8c4dd5c"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":6392,"digest":"sha256:029a6d5a3fd0bf6e0e9f5bd7fa47fdc6cb82eaf25223865e0e5743b8eb5b4c0e"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":407,"digest":"sha256:3d2317202ec33cfbf1a72cf82f8396f645294a514a6d2a77c33ff9f056996f54"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":6476,"digest":"sha256:cf0be3e61be825c41365df2c3352164d3b040a1da28751366eab290c6bba317f"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22500707,"digest":"sha256:5e6ec7f28fb77f84f64b8c29fcb0a746260563f5858315e3e9fcc4aee2844840"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22229795,"digest":"sha256:ab804f9bbcbe56bd453382373757c73b0d02efb6beadca0e45a4558911a87594"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":203,"digest":"sha256:052b395f16bcb36d7f7781a596a831139187760b6cbadf61b5b731bbc41d2690"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":377005,"digest":"sha256:865c1ca206935a9f8fb2bd9ccb2b519f203e6e20c2eb41646d523ba2a0d1f2f9"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":7465,"digest":"sha256:2a5c152cf2a21986771311045ca67caf98f14c3e913a27582f8db1dd840e02f1"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22500707,"digest":"sha256:5e6ec7f28fb77f84f64b8c29fcb0a746260563f5858315e3e9fcc4aee2844840"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22229795,"digest":"sha256:ab804f9bbcbe56bd453382373757c73b0d02efb6beadca0e45a4558911a87594"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":203,"digest":"sha256:052b395f16bcb36d7f7781a596a831139187760b6cbadf61b5b731bbc41d2690"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":849,"digest":"sha256:cb43f84713f5e841dcd7f312b2f988ae02702dd0c990000afc678fab248101be"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":377006,"digest":"sha256:a9494c5d0b2dba4920c780143506a3027927083e5916ddd0c0847f8dd7b60812"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":6392,"digest":"sha256:70538cb8711ad9edb0527210b6121cb68516d525dabecee93a445c77b80d8cfc"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":407,"digest":"sha256:31a64bf1f1cf5d50ebbfebffc095a62f1c93c06383f4d9380ccfcd8de79a0bb6"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":8856,"digest":"sha256:d2ba0ddfa5d17c4777e4057fae98c085a5d5b2e1a74c0e2c3ae4fd55996a872c"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2207025,"digest":"sha256:cd784148e3483c2c86c50a48e535302ab0288bebd587accf40b714fffd0646b3"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":5535735,"digest":"sha256:6e3058b2db8a6014d1395fbf478446e8af611c39df514978c66f23394871b006"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":494,"digest":"sha256:7ca4d29669c121345b3ecaddc9f6908c05b6de3c6ef9773f677fecb7d0f895d7"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":628,"digest":"sha256:a14cf6997716d72a070dca609539a16e09938e066f18bb9a69f5d0c2ac2a28ac"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":377020,"digest":"sha256:52bf7307852b121160c90a435d9979989e7e12a36db08bbd423bca1f2f07c3c0"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":8854,"digest":"sha256:69325d6c4509c9fbf7279965b6ba6fe97c0c4b371ca82a73e0438fa8227afee6"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2207025,"digest":"sha256:cd784148e3483c2c86c50a48e535302ab0288bebd587accf40b714fffd0646b3"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":5535735,"digest":"sha256:6e3058b2db8a6014d1395fbf478446e8af611c39df514978c66f23394871b006"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":494,"digest":"sha256:7ca4d29669c121345b3ecaddc9f6908c05b6de3c6ef9773f677fecb7d0f895d7"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":628,"digest":"sha256:a14cf6997716d72a070dca609539a16e09938e066f18bb9a69f5d0c2ac2a28ac"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":377018,"digest":"sha256:831d7b86d96a23273da38e5357e1cc6f21228ca8346f7ef13ec00e13557a25c8"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":9845,"digest":"sha256:c9238341b29dcc3ca8924d61ce246e251c1e33583c60fe54727cc9362cc7e928"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2207025,"digest":"sha256:cd784148e3483c2c86c50a48e535302ab0288bebd587accf40b714fffd0646b3"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":5535735,"digest":"sha256:6e3058b2db8a6014d1395fbf478446e8af611c39df514978c66f23394871b006"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":494,"digest":"sha256:7ca4d29669c121345b3ecaddc9f6908c05b6de3c6ef9773f677fecb7d0f895d7"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":628,"digest":"sha256:a14cf6997716d72a070dca609539a16e09938e066f18bb9a69f5d0c2ac2a28ac"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":848,"digest":"sha256:c667303b7ebb40481726afdd94e883fd4827426fd7f5b68ad1a9cca860098d46"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":377016,"digest":"sha256:d8e57ff00837975f28cc6d5bed70ba62da382170c91abfb2b40865f5d7d779c2"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":6383,"digest":"sha256:b242155a0a71f5dee5535934f8abee2594c59c19aa8a6bced9fe5909b160971e"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":406,"digest":"sha256:4de0ee1235c7c460cf1a0037a5f19365b3114dacdc9028549d37a5be43d4ebd8"}]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":9847,"digest":"sha256:53b8ecb2f9809d94a5d3681731b417a6ce72e5f9e7df7a49f63e3ee7e029a9ab"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2207025,"digest":"sha256:cd784148e3483c2c86c50a48e535302ab0288bebd587accf40b714fffd0646b3"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":5535735,"digest":"sha256:6e3058b2db8a6014d1395fbf478446e8af611c39df514978c66f23394871b006"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":494,"digest":"sha256:7ca4d29669c121345b3ecaddc9f6908c05b6de3c6ef9773f677fecb7d0f895d7"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":628,"digest":"sha256:a14cf6997716d72a070dca609539a16e09938e066f18bb9a69f5d0c2ac2a28ac"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":848,"digest":"sha256:6b6951ba6764258b604ebd61171fe7f6621d70f3981a9c7348460cbe59307555"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":377013,"digest":"sha256:1a490b3551e2ee7e28b53208acbf3a81735f26de66b8da7735e392c51614a81f"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":6386,"digest":"sha256:22fb3fcdc6538ffbc6b5cd7ca30ca8c913db05144ac6fbb44955e54f379e55f3"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":407,"digest":"sha256:8ad6ae8c22ec97b5f5c6071846158197cba85e3c39645ba5e616dca3b2ecb287"}]}

View File

@@ -1 +0,0 @@
{"name":"joxit/docker-registry-ui","tags":["1.0","debian-static","0.4-debian-static","0.3.0-static","0.2","0.4-debian","0.5-debian-static","0.6","1.0-debian","0.3","0.2-static","0.6-static","0.5-static","arm64v8-static","1.0-static","1.0-debian-static","arm64v8","latest","arm32v7-static","arm32v7","master","0.6-debian","0.5","master-static","0.3-debian","0.6-debian-static","debian","0.5-debian","0.3-static","0.3-debian-static","0.3.0","0.4-static","static","0.4"]}

View File

@@ -1 +0,0 @@
{"architecture":"amd64","config":{"Hostname":"","Domainname":"","User":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"ExposedPorts":{"6789/tcp":{}},"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","NPM_CONFIG_LOGLEVEL=warn","USER_ID=0","NODE_PATH=/usr/lib/node_modules/"],"Cmd":["kosmtik","serve"],"ArgsEscaped":true,"Image":"sha256:126998402a11a3e9df5c3449d62b2f7bc6177ee1ca2bcb0aa8315f50a8364dc3","Volumes":null,"WorkingDir":"/opt/project","Entrypoint":null,"OnBuild":[],"Labels":{"maintainer":"Jones Magloire @Joxit"}},"container":"eafee657ebbb8e0cbfb6cb7cc95e6c530bf37a3fe135084c050a44822db5922e","container_config":{"Hostname":"eafee657ebbb","Domainname":"","User":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"ExposedPorts":{"6789/tcp":{}},"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","NPM_CONFIG_LOGLEVEL=warn","USER_ID=0","NODE_PATH=/usr/lib/node_modules/"],"Cmd":["/bin/sh","-c","#(nop) ","CMD [\"kosmtik\" \"serve\"]"],"ArgsEscaped":true,"Image":"sha256:126998402a11a3e9df5c3449d62b2f7bc6177ee1ca2bcb0aa8315f50a8364dc3","Volumes":null,"WorkingDir":"/opt/project","Entrypoint":null,"OnBuild":[],"Labels":{"maintainer":"Jones Magloire @Joxit"}},"created":"2018-04-22T07:10:46.610033985Z","docker_version":"17.06.1-ce","history":[{"created":"2018-03-13T22:27:37.022366567Z","created_by":"/bin/sh -c #(nop) ADD file:e3250bb9848f956bdb43b205f1237df0d81a25088c95dbdeb20a1e2baf1d884f in / "},{"created":"2018-03-13T22:27:37.3121465Z","created_by":"/bin/sh -c #(nop) CMD [\"bash\"]","empty_layer":true},{"created":"2018-04-22T06:59:43.015381485Z","created_by":"/bin/sh -c #(nop) LABEL maintainer=Jones Magloire @Joxit","empty_layer":true},{"created":"2018-04-22T06:59:43.488979295Z","created_by":"/bin/sh -c #(nop) ENV NPM_CONFIG_LOGLEVEL=warn","empty_layer":true},{"created":"2018-04-22T06:59:43.731038037Z","created_by":"/bin/sh -c #(nop) ENV USER_ID=0","empty_layer":true},{"created":"2018-04-22T06:59:44.146847045Z","created_by":"/bin/sh -c #(nop) ENV NODE_PATH=/usr/lib/node_modules/","empty_layer":true},{"created":"2018-04-22T06:59:44.516663481Z","created_by":"/bin/sh -c #(nop) WORKDIR /opt/kosmtik"},{"created":"2018-04-22T07:10:45.700110786Z","created_by":"/bin/sh -c apt-get update \u0026\u0026 apt-get install -y --no-install-recommends curl ca-certificates gpg \u0026\u0026 curl -sL https://deb.nodesource.com/setup_6.x | bash - \u0026\u0026 apt-get install -y nodejs \u0026\u0026 curl -sL https://github.com/kosmtik/kosmtik/archive/master.tar.gz | tar xz --strip-components=1 \u0026\u0026 npm install --production \u0026\u0026 node index.js plugins --install kosmtik-tiles-export \u0026\u0026 node index.js plugins --install kosmtik-fetch-remote \u0026\u0026 node index.js plugins --install kosmtik-overlay \u0026\u0026 node index.js plugins --install kosmtik-deploy \u0026\u0026 node index.js plugins --install kosmtik-overpass-layer \u0026\u0026 node index.js plugins --install kosmtik-map-compare \u0026\u0026 node index.js plugins --install kosmtik-mapnik-reference \u0026\u0026 node index.js plugins --install kosmtik-osm-data-overlay \u0026\u0026 node index.js plugins --install kosmtik-mbtiles-export \u0026\u0026 node index.js plugins --install kosmtik-overpass-layer \u0026\u0026 node index.js plugins --install kosmtik-place-search \u0026\u0026 node index.js plugins --install kosmtik-geojson-overlay \u0026\u0026 node index.js plugins --install kosmtik-open-in-josm \u0026\u0026 npm uninstall npm \u0026\u0026 npm cache clean \u0026\u0026 apt-get autoremove -y --purge curl gpg \u0026\u0026 rm -rf /var/lib/apt/lists/*"},{"created":"2018-04-22T07:10:45.934434683Z","created_by":"/bin/sh -c #(nop) COPY file:e8a1a6bcbd6331a04ca6c56b49e1dd61fd12a8794d0cacd4673a4714aefa7316 in /bin/kosmtik "},{"created":"2018-04-22T07:10:46.113467981Z","created_by":"/bin/sh -c #(nop) WORKDIR /opt/project"},{"created":"2018-04-22T07:10:46.419460747Z","created_by":"/bin/sh -c #(nop) EXPOSE 6789/tcp","empty_layer":true},{"created":"2018-04-22T07:10:46.610033985Z","created_by":"/bin/sh -c #(nop) CMD [\"kosmtik\" \"serve\"]","empty_layer":true}],"os":"linux","rootfs":{"type":"layers","diff_ids":["sha256:3358360aedad76edf49d0022818228d959d20a4cccc55d01c32f8b62e226e2c2","sha256:54556e545e47f38be2796425e0f5d0a2b65e4753c41ea7818c1af54e18cf7f6e","sha256:3c494a45e7e3a32463e77f1c9596e6ff1148531c2a963c21c72c54f183c4957c","sha256:80c9530552443771b56a60d6e987c0e0ae4088ef8ac4d8f213bd7658ad0ce2c5","sha256:a2a09416fc54613ac0f6a6a2f514e4c45bf50b20c5806ea61e968410cb219e84"]}}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":4765,"digest":"sha256:d6d8588a8fe6397622ce275398f337d5a3b2584de9da166f2c6ed0b67083ca93"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":22488979,"digest":"sha256:2a72cbf407d67c7a7a76dd48e432091678e297140dce050ad5eccad918a9f8d6"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":115,"digest":"sha256:01a12542a7912405cab1f8ef28b67763a9f09b537032ad3be24d81ae56dc2b05"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":89917756,"digest":"sha256:f37ddff9a29bcbcf6705771d6f74c587b91efac86fe4d82d2f840d3a48fac113"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":271,"digest":"sha256:3b802ba7d2a2b83b8f4b96dc26d7c6d0aae1543503c7c5db214040d99e57eaed"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":115,"digest":"sha256:881c61607a3acb08897ab7b554a89aabcd83759ea2091b454b1f59a1841a3c21"}]}

View File

@@ -1 +0,0 @@
{"name":"joxit/kosmtik","tags":["latest"]}

View File

@@ -1 +0,0 @@
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":7318,"digest":"sha256:3e3d75a476f5185ffac049eb6912d3743cd65d0eaf060950a18dc0f88d372eb8"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":52608519,"digest":"sha256:f2b6b4884fc8b2f1fcef843f92f7c82c9c149df85ac77e5f0de7a342ae442412"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":19266189,"digest":"sha256:4fb899b4df216ab398fb05547f86dc371db944cf53dea7913d2f4261ed09e2be"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":4406,"digest":"sha256:c669d5da499dfc3f959bff647d84aa109d42bd9dc4a84cd1736607a9a193931e"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":117624,"digest":"sha256:03e8ff4c87216eb5e2bdc5aeab7d50e312312df3b9358eac4f84cd10c0db8d7c"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":18852414,"digest":"sha256:45cea6895e80bf8c8c5d132c993207bb86f1c7082521136bd44ce938ee895987"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":1061041,"digest":"sha256:9eabd4fe2d386b4496d5f45478c484eab6f9d3c7933f18760580ddf1e506df29"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":126,"digest":"sha256:3f2dc43d01950905ce9091ad1ac463e334313b3644dade6fbd176c91350cc13d"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":32716103,"digest":"sha256:39ce2d4955b7bf8369a4530c203df6554ca08f36e2d5a32fb5dde978ce346222"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":210,"digest":"sha256:9c9ab56df3b3ae9c3a6762a320b23019d7a421c61133bbe9dc473b6ce76c0604"}]}

Some files were not shown because too many files have changed in this diff Show More