Create registry-proxy

This commit is contained in:
Stille 2022-04-11 19:57:39 +08:00
parent 85dc33dfba
commit 33b6d7d677
4 changed files with 73 additions and 0 deletions

View File

@ -0,0 +1,7 @@
FROM registry:latest
LABEL maintainer="Stille <stille@ioiox.com>"
ENV PROXY_REMOTE_URL="" \
DELETE_ENABLED=""
COPY entrypoint.sh /entrypoint.sh

32
registry-proxy/README.md Normal file
View File

@ -0,0 +1,32 @@
# mc
GitHub [stilleshan/dockerfiles](https://github.com/stilleshan/dockerfiles)
Docker [stilleshan/registry-proxy](https://hub.docker.com/r/stilleshan/registry-proxy)
> *docker image support for X86 and ARM*
## 简介
代理 ghcr.io / gcr.io / k8s.gcr.io 等镜像仓库的 registry proxy 镜像.
## 使用
### docker
环境变量`PROXY_REMOTE_URL`:
- https://ghcr.io
- https://gcr.io
- https://k8s.gcr.io
```shell
docker run -d --restart always \
-v /data/path:/var/lib/registry\
-p 5000:5000 \
-e PROXY_REMOTE_URL=https://ghcr.io \
stilleshan/registry-proxy
```
### docker compose
下载 [docker-compose.yml](https://raw.githubusercontent.com/stilleshan/dockerfiles/main/registry-proxy/docker-compose.yml) 执行以下命令启动:
```shell
docker-compose up -d
```
## 参考
- GitHub [findsec-cn/registry-proxy](https://github.com/findsec-cn/registry-proxy)

View File

@ -0,0 +1,12 @@
version: "3"
services:
ghcr.io:
image: stilleshan/registry-proxy
volumes:
- ./data:/var/lib/registry
- /etc/localtime:/etc/localtime
ports:
- 5000:5000
environment:
- PROXY_REMOTE_URL=https://ghcr.io
restart: always

22
registry-proxy/entrypoint.sh Executable file
View File

@ -0,0 +1,22 @@
#!/bin/sh
set -e
CONFIG_YML=/etc/docker/registry/config.yml
if [ -n "$PROXY_REMOTE_URL" -a `grep -c "$PROXY_REMOTE_URL" $CONFIG_YML` -eq 0 ]; then
echo "proxy:" >> $CONFIG_YML
echo " remoteurl: $PROXY_REMOTE_URL" >> $CONFIG_YML
echo "------ Enabled proxy to remote: $PROXY_REMOTE_URL ------"
elif [ $DELETE_ENABLED = true -a `grep -c "delete:" $CONFIG_YML` -eq 0 ]; then
sed -i '/rootdirectory/a\ delete:' $CONFIG_YML
sed -i '/delete/a\ enabled: true' $CONFIG_YML
echo "------ Enabled local storage delete -----"
fi
case "$1" in
*.yaml|*.yml) set -- registry serve "$@" ;;
serve|garbage-collect|help|-*) set -- registry "$@" ;;
esac
exec "$@"