Sign inSign up

7error/harbor

By 7error

Updated almost 6 years ago

An all in one image for goharbor

Image
0

10K+

7error/harbor repository overview

Why

Run harbor without docker-compose? https://github.com/goharbor/harbor/issues/9758

How run

Step1

mkdir -p $(pwd)/harbor/{cert,registry,postgresql,redis,chart_storage,job_logs}

chown -R 999:999 $(pwd)/harbor/postgresql

docker run \
--entrypoint "" \
--user `id -u`:`id -g` \
--volume $(pwd)/harbor/cert:/tmp/cert \
--interactive \
--tty \
--rm \
7error/harbor:1.10.4-8 \
bash -c "export SNI='192.168.9.119;your-harbor-domain;reg.domain.com;192.168.100.111' && cd /tmp/cert && /init-cert.sh"

Step2

docker run -d \
--name harbor \
--restart=always \
--env EXT_ENDPOINT=https://reg.domain.com:8443 \
--env TZ=Asia/Shanghai \
-p 8443:8443 \
-p 6080:6080 \
-p 4443:4443 \
-v $(pwd)/harbor:/data \
-v $(pwd)/harbor/job_logs:/var/log/jobs \
-v $(pwd)/harbor/postgresql:/var/lib/postgresql/data \
-v $(pwd)/harbor/redis:/var/lib/redis \
-v $(pwd)/harbor/registry:/storage \
-v $(pwd)/harbor/chart_storage:/chart_storage \
-v $(pwd)/harbor/cert/ca.pem:/etc/core/ca/ca.crt \
-v $(pwd)/harbor/cert/harbor.pem:/etc/cert/server.crt \
-v $(pwd)/harbor/cert/harbor-key.pem:/etc/cert/server.key \
-v $(pwd)/harbor/cert/notary-signer-ca.crt:/etc/notary/notary-signer-ca.crt \
-v $(pwd)/harbor/cert/notary-signer.key:/etc/notary/notary-signer.key \
-v $(pwd)/harbor/cert/notary-signer.crt:/etc/notary/notary-signer.crt \
-v $(pwd)/harbor/cert/private_key.pem:/etc/core/private_key.pem \
-v $(pwd)/harbor/cert/root.crt:/etc/registry/root.crt \
7error/harbor:1.10.4-8


How use

web

## ui address
https://reg.domain.com:8443
## default user && password
admin
Harbor12345

cli

cp $(pwd)/harbor/cert/ca.pem /etc/pki/ca-trust/source/anchors/ca.cert
update-ca-trust force-enable
update-ca-trust
systemctl restart docker

docker login -u admin --password Harbor12345 reg.domain.com:8443
docker pull debian:10
docker tag debian:10 reg.domain.com:8443/library/debian:10
docker push reg.domain.com:8443/library/debian:10

docker pull reg.domain.com:8443/library/debian:10

## helm cli
helm repo update
helm repo add --ca-file $(pwd)/harbor/cert/ca.pem myrepo https://reg.domain.com:8443/chartrepo/library
helm repo update
helm search myrepo

Other

$ docker exec -it harbor bash -c "ss -tunlp"
Netid   State    Recv-Q   Send-Q     Local Address:Port      Peer Address:Port
tcp     LISTEN   0        128              0.0.0.0:6379           0.0.0.0:*      users:(("redis-server",pid=323,fd=6))
tcp     LISTEN   0        128              0.0.0.0:8081           0.0.0.0:*      users:(("nginx",pid=332,fd=6))
tcp     LISTEN   0        128              0.0.0.0:5432           0.0.0.0:*
tcp     LISTEN   0        128              0.0.0.0:4443           0.0.0.0:*      users:(("nginx",pid=333,fd=8))
tcp     LISTEN   0        128              0.0.0.0:8443           0.0.0.0:*      users:(("nginx",pid=333,fd=6))
tcp     LISTEN   0        128              0.0.0.0:6080           0.0.0.0:*      users:(("nginx",pid=333,fd=7))
tcp     LISTEN   0        128                    *:5000                 *:*      users:(("registry",pid=327,fd=3))
tcp     LISTEN   0        128                    *:14443                *:*      users:(("notary-server",pid=644,fd=6))
tcp     LISTEN   0        128                    *:6060                 *:*      users:(("clair",pid=452,fd=5))
tcp     LISTEN   0        128                    *:6061                 *:*      users:(("clair",pid=452,fd=6))
tcp     LISTEN   0        128                    *:9999                 *:*      users:(("chartm",pid=328,fd=3))
tcp     LISTEN   0        128                    *:8080                 *:*      users:(("harbor_core",pid=624,fd=9))
tcp     LISTEN   0        128                    *:8082                 *:*      users:(("harbor_jobservi",pid=329,fd=9))
tcp     LISTEN   0        128                    *:8084                 *:*      users:(("clair-adapter",pid=338,fd=3))
tcp     LISTEN   0        128                    *:8085                 *:*      users:(("harbor_registry",pid=322,fd=3))
tcp     LISTEN   0        128                 [::]:5432              [::]:*
tcp     LISTEN   0        128                    *:7899                 *:*
$ docker exec -it harbor bash -c "pstree"
s6-svscan─┬─s6-supervise
          ├─s6-supervise───clair───7*[{clair}]
          ├─s6-supervise───chartm───8*[{chartm}]
          ├─s6-supervise───harbor_core───12*[{harbor_core}]
          ├─2*[s6-supervise───nginx───4*[nginx]]
          ├─s6-supervise───harbor_jobservi───13*[{harbor_jobservi}]
          ├─s6-supervise───notary-server───11*[{notary-server}]
          ├─s6-supervise───clair-adapter───8*[{clair-adapter}]
          ├─s6-supervise───notary-signer───8*[{notary-signer}]
          ├─s6-supervise───postgres───15*[postgres]
          ├─s6-supervise───redis-server───3*[{redis-server}]
          ├─s6-supervise───registry───7*[{registry}]
          └─s6-supervise───harbor_registry───5*[{harbor_registry}]
$ docker exec -it harbor bash -c "pstree -a"
s6-svscan -t0 /var/run/s6/services
  ├─s6-supervise s6-fdholderd
  ├─s6-supervise clair
  │   └─clair -config /etc/clair/config.yml
  │       └─7*[{clair}]
  ├─s6-supervise chartmuseum
  │   └─chartm
  │       └─8*[{chartm}]
  ├─s6-supervise core
  │   └─harbor_core
  │       └─12*[{harbor_core}]
  ├─s6-supervise nginx
  │   └─nginx
  │       ├─nginx
  │       ├─nginx
  │       ├─nginx
  │       └─nginx
  ├─s6-supervise jobservice
  │   └─harbor_jobservi -c /etc/jobservice/config.yml
  │       └─13*[{harbor_jobservi}]
  ├─s6-supervise notary-server
  │   └─notary-server -config=/etc/notary/server-config.postgres.json -logf=json
  │       └─11*[{notary-server}]
  ├─s6-supervise clair-adapter
  │   └─clair-adapter
  │       └─8*[{clair-adapter}]
  ├─s6-supervise notary-signer
  │   └─notary-signer -config=/etc/notary/signer-config.postgres.json -logf=json
  │       └─8*[{notary-signer}]
  ├─s6-supervise portal
  │   └─nginx
  │       ├─nginx
  │       ├─nginx
  │       ├─nginx
  │       └─nginx
  ├─s6-supervise postgres
  │   └─postgres -D /var/lib/postgresql/data
  │       ├─postgres
  │       ├─postgres
  │       ├─postgres
  │       ├─postgres
  │       ├─postgres
  │       ├─postgres
  │       ├─postgres
  │       ├─postgres
  │       ├─postgres
  │       ├─postgres
  │       ├─postgres
  │       ├─postgres
  │       ├─postgres
  │       ├─postgres
  │       └─postgres
  ├─s6-supervise redis
  │   └─redis-server
  │       └─3*[{redis-server}]
  ├─s6-supervise registry
  │   └─registry serve /etc/registry/config.yml
  │       └─7*[{registry}]
  └─s6-supervise registryctl
      └─harbor_registry -c /etc/registryctl/config.yml
          └─5*[{harbor_registry}]
docker exec -it harbor bash

s6-service all status

chartmuseum         up (pid 287) 735 seconds
clair               up (pid 289) 735 seconds
clair-adapter       up (pid 291) 735 seconds
core                up (pid 309) 735 seconds
jobservice          up (pid 296) 735 seconds
nginx               up (pid 297) 735 seconds
notary-server       up (pid 326) 735 seconds
notary-signer       up (pid 300) 735 seconds
portal              up (pid 298) 735 seconds
postgres            up (pid 318) 735 seconds
redis               up (pid 304) 735 seconds
registry            up (pid 299) 735 seconds
registryctl         up (pid 330) 735 seconds
s6-fdholderd        down (exitcode 0) 735 seconds, ready 735 seconds

s6-service nginx stop
s6-service nginx reload
s6-service nginx restart

Tag summary

Content type

Image

Digest

Size

375.2 MB

Last updated

almost 6 years ago

docker pull 7error/harbor