harbour

所属分类:云原生工具
开发工具:GO
文件大小:688KB
下载次数:0
上传日期:2023-02-25 01:46:34
上 传 者sh-1993
说明:  Harbour是一个码头注册中心,包括专注于云原生环境的构建系统。
(Harbour is a docker registry including build system focused on cloud native environments.)

文件列表:
.dockerignore (157, 2022-02-15)
.editorconfig (39, 2022-02-15)
.idea (0, 2022-02-15)
.idea\codeStyles (0, 2022-02-15)
.idea\codeStyles\Project.xml (536, 2022-02-15)
.idea\codeStyles\codeStyleConfig.xml (142, 2022-02-15)
.idea\dictionaries (0, 2022-02-15)
.idea\dictionaries\seitz.xml (162, 2022-02-15)
.idea\harbour.iml (602, 2022-02-15)
.idea\misc.xml (283, 2022-02-15)
.idea\modules.xml (273, 2022-02-15)
.idea\runConfigurations (0, 2022-02-15)
.idea\runConfigurations\go_build_github_com_harbourrocks_harbour_cmd_harbour_build.xml (1036, 2022-02-15)
.idea\runConfigurations\go_build_github_com_harbourrocks_harbour_cmd_harbour_gateway.xml (1147, 2022-02-15)
.idea\runConfigurations\go_build_github_com_harbourrocks_harbour_cmd_harbour_iam.xml (1227, 2022-02-15)
.idea\runConfigurations\go_build_github_com_harbourrocks_harbour_cmd_harbour_scm.xml (1070, 2022-02-15)
.idea\vcs.xml (372, 2022-02-15)
.vscode (0, 2022-02-15)
.vscode\launch.json (870, 2022-02-15)
CONTRIBUTING.md (1153, 2022-02-15)
LICENSE (1091, 2022-02-15)
build (0, 2022-02-15)
build\package (0, 2022-02-15)
build\package\harbour-build (0, 2022-02-15)
build\package\harbour-build\Dockerfile (258, 2022-02-15)
build\package\harbour-gateway (0, 2022-02-15)
build\package\harbour-gateway\Dockerfile (260, 2022-02-15)
build\package\harbour-iam (0, 2022-02-15)
build\package\harbour-iam\Dockerfile (256, 2022-02-15)
build\package\harbour-scm (0, 2022-02-15)
build\package\harbour-scm\Dockerfile (256, 2022-02-15)
build\package\harbour-web (0, 2022-02-15)
build\package\harbour-web\Dockerfile (672, 2022-02-15)
build\package\harbour-web\docker-entrypoint.sh (273, 2022-02-15)
build\package\harbour-web\nginx.conf (194, 2022-02-15)
... ...

# Harbour.rocks Harbour is a docker registry including build system focused on cloud native environments. ![Screenshot of Harbour](https://github.com/harbourrocks/harbour/blob/master/images/screenshot.png) # Architecture harbour.rocks is composed of several **Golang microservices**. It utilizes **Redis** as database and supports various **OpenId Connect** authentication provider. ![Architecture of harbour.rocks](https://github.com/harbourrocks/harbour/blob/master/images/architecture.png) # Development ## How to develop harbour * You have to install Go to your system for all the backend work: https://golang.org/doc/install *Right now there are no images build for the individual services but that is on the roadmap.* * Install docker AND docker-compose to your system. Make sure both work by executing the following command line (note: versions do not have to match exactly) ``` $ docker -version Docker version 19.03.8, build afacb8b $ docker-compose -version docker-compose version 1.25.4, build 8d51620a ``` * You need a redis database for storage. Simply setup the redis by executing this script: [scripts/run-redis.sh](https://github.com/harbourrocks/harbour/blob/master/scripts/run-redis.sh), or use your existing local one. *Script only works with docker installed before.* * The actual registry that stores the images is the official docker registry. Simply setup the registry by executing this script: [scripts/run-registry.sh](https://github.com/harbourrocks/harbour/blob/master/scripts/run-registry.sh). This will also create all certificates that are required for authenticating with the registry. *Script only works with docker installed before.* *You will also have to adapt the REGISTRY_AUTH_TOKEN_REALM env variable which is the address of the IAM service on your PC. This has to be the ip address of your network adapter, because the registry (running inside a container) has to connect with it and localhost won't work from inside a container. Change the env variable in this file: [deployments/registry/docker-compose.yml](https://github.com/harbourrocks/harbour/blob/master/deployments/registry/docker-compose.yml)* * We are using IntelliJ 2020 for development. You should open the project root as IntelliJ project. This will give you several run configurations which should work for the development environment. FOR THE TIME THIS PROJECT IS BEING DEVELOPED BY WEB SYSTEMS STUDENTS TRY TO WORK WITH THE PROVIDED CONFIGURATION. * Now you should be able to run the several services of harbour from your IntelliJ by selecting the configuration and hitting the run button. For further information see [CONTRIBUTING.md](https://github.com/harbourrocks/harbour/blob/master/CONTRIBUTING.md) ## Redis **Version:** 5+ Harbour stores its data in the key-value database [Redis](https://github.com/harbourrocks/harbour/blob/master/https://redis.io/). To run a development redis database you can use the docker-compose file provided here [deployments/redis/docker-compose.yml](https://github.com/harbourrocks/harbour/blob/master/deployments/redis/docker-compose.yml). There is also a script to quickly run a redis instance [scripts/run-redis.sh](https://github.com/harbourrocks/harbour/blob/master/scripts/run-redis.sh). `./scripts/run-redis.sh` You can access redis for debugging purposes by the redis-cli using the following script [scripts/redis-cli.sh](https://github.com/harbourrocks/harbour/blob/master/scripts/redis-cli.sh). `./scripts/redis-cli.sh` # Docker Registry API * List all repositories * /v2/_catalog * List all tags (images inside a repository) * /v2/\/tags/list https://docs.docker.com/registry/spec/api/#detail # Github App **Installation of the App not yet covered** ### Get the *installation_id* of the Github app from the URL as shown in the picture below, then click on *App Settings* ![Screenshot of Harbour](https://github.com/harbourrocks/harbour/blob/master/images/installed-apps.png) ### Get the *app_id*, *client_id*, and *client_secret* from the app settings: ![Screenshot of Harbour](https://github.com/harbourrocks/harbour/blob/master/images/github-app.png) ### Scroll down and generate a new private key: ![Screenshot of Harbour](https://github.com/harbourrocks/harbour/blob/master/images/github-app-private-key.png) ### Now run SCM and register the GitHub app: POST http://localhost:5300/scm/github/register BODY: ```json { "app_id": 0, "installation_id": "", "client_id": "", "client_secret": "", "private_key": "" } ``` For the private key use the content of the downloded private key. The downloaded file contains line breaks, make sure to format the content like this: `-----BEGIN RSA PRIVATE KEY-----\n[private bytes here, without linebreaks]\n-----END RSA PRIVATE KEY-----\n` # Licenses ## Font Awesome The project, application, website including our harbour.rocks organizational logo uses Font Awesome licensed under https://fontawesome.com/license. There were no modifications made. Thank you Font Awesome for providing a wide variety of free icons!

近期下载者

相关文件


收藏者