1598164440
안녕하세요! Classmethod 주식회사 신입 엔지니어 이병현이라고 합니다!
이번 AWS Summit Online Korea 2020의 세션을 들으면서 내용을 정리해보았습니다.
제가 정리한 세션은 김성진님 (솔루션즈 아키텍트, AWS) 의 이벤트 드리븐 아키텍처 구축을 위한 적절한 어플리케이션 통합 서비스 선택 및 사용 방법 입니다.
#aws #amazon sns #amazon mq #amazon eventbridge #amazon sqs #한국어블로그 #aws summit online korea 2020
1598164440
안녕하세요! Classmethod 주식회사 신입 엔지니어 이병현이라고 합니다!
이번 AWS Summit Online Korea 2020의 세션을 들으면서 내용을 정리해보았습니다.
제가 정리한 세션은 김성진님 (솔루션즈 아키텍트, AWS) 의 이벤트 드리븐 아키텍처 구축을 위한 적절한 어플리케이션 통합 서비스 선택 및 사용 방법 입니다.
#aws #amazon sns #amazon mq #amazon eventbridge #amazon sqs #한국어블로그 #aws summit online korea 2020
1661544360
Docker Registry UI
This project aims to provide a simple and complete user interface for your private docker registry. You have the choice between two versions, the standard interface (joxit/docker-registry-ui:latest
) and the static interface (joxit/docker-registry-ui:static
).
In the standard interface, there is no default registry, you need to add your own within the UI. With this version, you can manage more than one registry server but all the environment variables will be unavailable. All registries will be stored in the local storage of your browser. No configuration is needed when you launch the UI.
In the static interface, it will connect to a single registry and will not change. The configuration is done at the start of the interface, when you use the docker images whose tags contain the static
keyword. With this version, you can manage only one registry and all environment variables will be available.
This web user interface uses Riot the react-like user interface micro-library and riot-mui components.
docker pull
command to clipboard (see #42).url
(e.g. https://joxit.dev/docker-registry-ui/demo?url=https://registry.example.com
) standard interface.joxit/docker-registry-ui:static
as reverse proxy (with REGISTRY_URL
environment variable) to your docker registry (This will avoid CORS) static interface.REGISTRY_URL
(see #28) static interface.NGINX_PROXY_HEADER_*
(see #89) static interfaceSHOW_CONTENT_DIGEST
(values are: [true
, false
], default: true
) (see #126) static interface.CATALOG_ELEMENTS_LIMIT
(see #127) static interface.joxit/docker-registry-ui:latest
and joxit/docker-registry-ui:static
tags ?latest
tag was the first version of the project, one UI for many docker registries. The static
tag allows you to have an interface for a single registry and also allows you select your features.docker images
?Host
is set to $http_host
?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.Need more informations ? Try my examples or open an issue.
The docker image contains the source code and nginx in order to serve the docker-registry-ui. Please remember the difference between the standard interface (latest
tag) and static interface (static
tags).
You can run the standard interface see the website on your 80 port. You will be able to use the interface for many registry servers, but all the configuration via environment variables from the static interface will be unavailable.
docker run -d -p 80:80 joxit/docker-registry-ui:latest
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).PULL_URL
: Set a custom url for the docker pull command, this is useful when you use REGISTRY_URL
and your registry is on a different host (since 1.1.0).NGINX_PROXY_HEADER_*
: Set custom headers for your docker registry, usefull when you want to add your credentials. (Can be use only with REGISTRY_URL
).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
.Example with URL
option.
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.
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 and docker-registry-ui as proxy here or docker-registry-ui as standalone here.
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: ['*']
If your docker registry need credentials, you will need to send these HEADERS:
http:
headers:
Access-Control-Allow-Origin: ['<your docker-registry-ui url>']
Access-Control-Allow-Credentials: [true]
Access-Control-Allow-Headers: ['Authorization', 'Accept']
Access-Control-Allow-Methods: ['HEAD', 'GET', 'OPTIONS'] # Optional
An alternative for CORS issues is a plugin on your browser, more info here (thank you xmontero).
For deleting images, you need to activate the delete feature in your registry:
storage:
delete:
enabled: true
And you need to add these HEADERS:
http:
headers:
Access-Control-Allow-Methods: ['HEAD', 'GET', 'OPTIONS', 'DELETE']
Access-Control-Expose-Headers: ['Docker-Content-Digest']
If you are running the static interface don't forget the environment variable DELETE_IMAGES
.
Example of docker registry configuration file:
version: 0.1
log:
fields:
service: registry
storage:
delete:
enabled: true
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
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-Max-Age: [1728000]
Access-Control-Allow-Credentials: [true]
Access-Control-Expose-Headers: ['Docker-Content-Digest']
auth:
htpasswd:
realm: basic-realm
path: /etc/docker/registry/htpasswd
If you do not want to install the docker-registry-ui on your server, you may check out the Electron standalone application.
Author: Joxit
Source code: https://github.com/Joxit/docker-registry-ui
License: AGPL-3.0 license
#docker
1619691600
#css #cssnew #cssnews ##56 #talk.css
1596313500
HTML 문서에 다음 코드를 추가합니다.
<script src="//code.jquery.com/jquery-3.3.1.min.js"></script>
3.3.1은 버전입니다. 다른 버전을 사용하고 싶다면 숫자를 변경합니다.
jQuery 다운로드는 여기에서 합니다. 압축된 파일도 있고, 압축되지 않은 파일도 있습니다. 그리고 HTML 문서에 다음 코드를 추가합니다.
<script src="path/jquery-3.3.1.min.js"></script>
path와 파일 이름은 적절히 변경합니다.
다음은 ID가 jb인 h1 요소의 색을 빨간색으로 바꾸는 예제입니다.
<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>jQuery</title>
</head>
<body>
<h1 id="jb">Lorem Ipsum Dolor</h1>
<script src="//code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
$( '#jb' ).css( 'color', 'red' );
</script>
</body>
</html>
#jquery #html
1620050040
After many years, we’re finally close to using :is() and :where() to simplify our selectors everywhere. Daniel shares what these pseudo-classes are all about.
#talk.css #56 #talk.css