Sonatype Nexus ile ilgili ilk yazıya buradan ulaşabilirsiniz.
Bu yazıda aşağıdaki konuları ele alacağız.
- Nexus u HTTPS Olarak Çalıştırma
- Docker Reposu Ayarlama
- Reverse Proxy Yapılandırması
- LDAP Bağlantısı
1) Nexus u HTTPS Olarak Çalıştırma
Nexus web arayüzü varsayılan olarak 8081/tcp portundan http protokolü ile çalışıyor. Başka bir porttan HTTPS protokolü ile çalışabilmesi için SSL sertifikasına ihtiyacımız var.
nexus.pfx (Nexus Web Arayüzü için Kullanacağım SSL Sertifika)
run > certlm.msc > Personal > All Tasks > Request New Certificate > Web Server Template
Subject Bölümü
Subject Name > Common Name : nexus.alanadı
Subject Name > Common Name : nexus
Alternative Name > DNS : nexus.alanadı
Alternative Name > IP(v4) : serverIP
Private Key Bölümü
Key Options > Make Private Key Exportable
- Sertifika dosyasını (nexus.pfx) nexus u kurduğum sunucuya atıp keytool komutuyla nexus un kullanabileceği şekle getiriyorum.
keytool -importkeystore -srckeystore nexus.pfx -srcstoretype PKCS12 -destkeystore nexus-jks.jks -deststoretype JKS
!!!keytool komutu için /opt/nexus/jdk/temurin_XYZ/jdk-XYZ/bin/ dizinini kullanabiliriz.
Nexus web sunucusu olarak java tabanlı "Eclipse Jetty" kullanıyor.
/opt/sonatype-work/nexus3/etc/nexus.properties dosyasını aşağıdaki şekilde düzenliyorum(application-port-ssl ve nexus-args satırlarını ekledim)HTTPS protokolü için 9091/tcp portunu kullanacağım.
nexus-args bölümünde de http yi devre dışı bırakıp https i kullanacağımızdan jetty-http yerine jetty-https yazıyoruz.
/opt/nexus/etc/jetty/jetty-https.xml dosyasında "password" geçen satırları , yukarıda keytool komutuyla girdiğimiz parolayla değiştiriyoruz.
/opt/nexus/etc/ssl dizinine daha önceden oluşturduğumuz nexus-jks.jks dosyasını keystore.jks olarak atıyoruz.
2) Docker Reposu Ayarlama
Blob Store Oluşturma
- Oluşturduğum repoların nereyi ve ne kadar alan kullandığını görebilmek ve yönetebilmek için blob store oluşturuyorum.
- Oluşturduğum blobstore u da ayrı bir bölüm olarak bağlıyorum (yeni bir lv oluşturup )sunucuma. Bu sayede sadece ilgili reponun blobstore unu büyütüp diğer yerleri etkilemeden devam ediyorum.
Docker Repo Oluşturma
Repository > Repositories > Docker (hosted) seçiyorum. Açılan sayfadan repo ismi , bağlayıcı (connector) , blob store u seçiyorum.
Docker Reposuna Bağlanma
- **docker login* komutuyla nexus üzerinden çalıştırdığım docker reposuna giriş yapıyorum.
[berkant@ol9gui ~]$ docker login nexus.linux.local:11011
Username: admin
Password:
....
....
Login Succeeded
- Sunucuda bulunan d49 numaralı imajı etiketleyip , nexusta barındırdığım docker reposuna yolluyorum.
berkant@ol9gui ~]$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx alpine d4918ca78576 39 hours ago 52.8MB
nginx latest 9d0e6f6199dc 40 hours ago 152MB
busybox latest 08ef35a1c3f0 13 months ago 4.43MB
[berkant@ol9gui ~]$ docker tag nginx:alpine nexus.linux.local:11011/docker/nginx:alpine
[berkant@ol9gui ~]$ docker image ls | grep nexus
nexus.linux.local:11011/docker/nginx alpine d4918ca78576 39 hours ago 52.8MB
[berkant@ol9gui ~]$ docker push nexus.linux.local:11011/docker/nginx:alpine
The push refers to repository [nexus.linux.local:11011/docker/nginx]
25906c27b84d: Pushed
...
...
256f393e029f: Pushed
alpine: digest: sha256:97a145fb5809fd90ebdf66711f69b97e29ea99da5403c20310dcc425974a14f9 size: 1989
- Son olarak nexus üzerinde barındırdığımız docker repomuzdan imaj çekmeyi deneyelim.
[berkant@ol9gui ~]$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx alpine d4918ca78576 40 hours ago 52.8MB
nexus.linux.local:11011/docker/nginx alpine d4918ca78576 40 hours ago 52.8MB
....
....
[berkant@ol9gui ~]$ docker image rm d49 --force
Untagged: nginx:alpine
Untagged: nginx@sha256:b3c656d55d7ad751196f21b7fd2e8d4da9cb430e32f646adcf92441b72f82b14
Untagged: nexus.linux.local:11011/docker/nginx:alpine
Untagged: nexus.linux.local:11011/docker/nginx@sha256:97a145fb5809fd90ebdf66711f69b97e29ea99da5403c20310dcc425974a14f9
Deleted: sha256:d4918ca78576a537caa7b0c043051c8efc1796de33fee8724ee0fff4a1cabed9
Deleted: sha256:88af9f575d6a9fa7b5a16120f2a18f8113bbe9c8345586c40d360ba3042572a1
....
....
[berkant@ol9gui ~]$ docker pull nexus.linux.local:11011/docker/nginx:alpine
alpine: Pulling from docker/nginx
2d35ebdb57d9: Pull complete
....
....
Digest: sha256:97a145fb5809fd90ebdf66711f69b97e29ea99da5403c20310dcc425974a14f9
Status: Downloaded newer image for nexus.linux.local:11011/docker/nginx:alpine
nexus.linux.local:11011/docker/nginx:alpine



Top comments (0)