Nexus: различия между версиями
Sirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
(не показано 18 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
+ | [[Категория:Docker]] |
||
+ | [[Категория:Linux]] |
||
+ | [[Категория:Nexus]] |
||
+ | [[Категория:Arm]] |
||
+ | [[Категория:Rasberry]] |
||
+ | |||
+ | |||
=Репозиторий всего подряд= |
=Репозиторий всего подряд= |
||
На Расберри есть некоторые особенности но в целом документация подходит для разных систем |
На Расберри есть некоторые особенности но в целом документация подходит для разных систем |
||
+ | ==Установка== |
||
<PRE> |
<PRE> |
||
apt install openjdk-8-jdk |
apt install openjdk-8-jdk |
||
Строка 13: | Строка 21: | ||
Более новая Java может не работать - не тестировалось |
Более новая Java может не работать - не тестировалось |
||
− | Добавить репозиторий |
+ | Добавить репозиторий и ключ |
<PRE> |
<PRE> |
||
/etc/apt/sources.list.d/sonatype-community.list |
/etc/apt/sources.list.d/sonatype-community.list |
||
Строка 21: | Строка 29: | ||
#deb https://repo.sonatype.com/repository/community-apt-hosted/ bionic main |
#deb https://repo.sonatype.com/repository/community-apt-hosted/ bionic main |
||
</PRE> |
</PRE> |
||
+ | |||
+ | <PRE> |
||
+ | wget https://repo.sonatype.com/repository/community-hosted/pki/deb-gpg/DEB-GPG-KEY-Sonatype.asc |
||
+ | </PRE> |
||
+ | <PRE> |
||
+ | sudo apt-key add DEB-GPG-KEY-Sonatype.asc |
||
+ | </PRE> |
||
+ | <PRE> |
||
+ | apt-get update |
||
+ | apt-get install nexus-repository-manager |
||
+ | </PRE> |
||
+ | ==Особенности установки под Rasberry== |
||
+ | <PRE> |
||
+ | /opt/sonatype/nexus3/bin/nexus.vmoptions |
||
+ | </PRE> |
||
+ | <PRE> |
||
+ | -Xms1200M |
||
+ | -Xmx1200M |
||
+ | -XX:MaxDirectMemorySize=2G |
||
+ | -XX:+UnlockDiagnosticVMOptions |
||
+ | -XX:+LogVMOutput |
||
+ | -XX:LogFile=/opt/sonatype/sonatype-work/nexus3/log/jvm.log |
||
+ | -XX:-OmitStackTraceInFastThrow |
||
+ | -Djava.net.preferIPv4Stack=true |
||
+ | -Dkaraf.home=. |
||
+ | -Dkaraf.base=. |
||
+ | -Dkaraf.etc=etc/karaf |
||
+ | -Djava.util.logging.config.file=etc/karaf/java.util.logging.properties |
||
+ | -Dkaraf.data=/opt/sonatype/sonatype-work/nexus3 |
||
+ | -Dkaraf.log=/opt/sonatype/sonatype-work/nexus3/log |
||
+ | -Djava.io.tmpdir=/opt/sonatype/sonatype-work/nexus3/tmp |
||
+ | -Dkaraf.startLocalConsole=false |
||
+ | # |
||
+ | # additional vmoptions needed for Java9+ |
||
+ | # |
||
+ | # --add-reads=java.xml=java.logging |
||
+ | # --add-exports=java.base/org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED |
||
+ | # --patch-module=java.base=lib/endorsed/org.apache.karaf.specs.locator-4.2.9.jar |
||
+ | # --patch-module=java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-4.2.9.jar |
||
+ | # --add-opens=java.base/java.security=ALL-UNNAMED |
||
+ | # --add-opens=java.base/java.net=ALL-UNNAMED |
||
+ | # --add-opens=java.base/java.lang=ALL-UNNAMED |
||
+ | # --add-opens=java.base/java.util=ALL-UNNAMED |
||
+ | # --add-opens=java.naming/javax.naming.spi=ALL-UNNAMED |
||
+ | # --add-opens=java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED |
||
+ | # --add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED |
||
+ | # --add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED |
||
+ | # --add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED |
||
+ | # --add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED |
||
+ | # --add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED |
||
+ | # |
||
+ | # comment out this vmoption when using Java9+ |
||
+ | # |
||
+ | -Djava.endorsed.dirs=lib/endorsed:/opt/sonatype/jna |
||
+ | </PRE> |
||
+ | |||
+ | |||
+ | От файла по умолчанию отличаются:<BR> |
||
+ | Настройки памяти Java-машины |
||
+ | <PRE> |
||
+ | -Xms1200M |
||
+ | -Xmx1200M |
||
+ | -XX:MaxDirectMemorySize=2G |
||
+ | </PRE> |
||
+ | |||
+ | Дополнительные библиотеки |
||
+ | <PRE> |
||
+ | -Djava.endorsed.dirs=lib/endorsed |
||
+ | </PRE> |
||
+ | <PRE> |
||
+ | -Djava.endorsed.dirs=lib/endorsed:/opt/sonatype/jna |
||
+ | </PRE> |
||
+ | |||
+ | JNA версии 4.5.0 не работает на расберри - нужно скачать и положить в <B>/opt/sonatype/jna</B> версию 5.6.0 (с другими не тестировал) |
||
+ | |||
+ | <BR> |
||
+ | После чего найти grep и поправить все упоминания версии JNA |
||
+ | <BR> |
||
+ | найти jar для jna и jna-platform можно гуглом в репозиториях |
||
+ | |||
+ | ==Проблемы== |
||
+ | ===NumberFormatException: null=== |
||
+ | Ошибка со стектрейсом как в примере обозначает (скорее всего) что <B>-Dkaraf.etc=etc/karaf</B> указывает туда где нет файлов. А так как все пути относительные то это может быть следствием банально запуска руками (не через сервис) находясь в неправильном месте. |
||
+ | <PRE> |
||
+ | Error occurred shutting down framework: java.lang.NumberFormatException: null |
||
+ | java.lang.NumberFormatException: null |
||
+ | at java.lang.Integer.parseInt(Integer.java:542) |
||
+ | at java.lang.Integer.parseInt(Integer.java:615) |
||
+ | at org.apache.karaf.main.ConfigProperties.<init>(ConfigProperties.java:235) |
||
+ | at org.apache.karaf.main.Main.updateInstancePidAfterShutdown(Main.java:227) |
||
+ | at org.sonatype.nexus.karaf.NexusMain.main(NexusMain.java:67) |
||
+ | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) |
||
+ | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) |
||
+ | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) |
||
+ | at java.lang.reflect.Method.invoke(Method.java:498) |
||
+ | at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:85) |
||
+ | at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:65) |
||
+ | </PRE> |
||
+ | |||
+ | =Настройка и работа с Nexus= |
||
+ | ==Docker== |
||
+ | Запустить репозиторий на отдельном порту (в примере порт 8083)<BR> |
||
+ | Не уверен что докер может работать с репозиториями по url |
||
+ | <BR> |
||
+ | [[Image:nexus_regestry_setup_1.png|800px]] |
||
+ | |||
+ | <BR> |
||
+ | |||
+ | Со стороны докер-клиента, добавить репозиторий в "небезопасные" (config.json) или настройки докермашины для OS X |
||
+ | |||
+ | [[Image:Docker_insecure_repo_mac_os_x_1.png|800px]] |
||
+ | |||
+ | После чего можно авторизоваться в репозитории (пароль указан автогенеренный для примера) |
||
+ | <PRE> |
||
+ | docker login http://192.168.1.223:8083 --username admin --password ahruec7U |
||
+ | WARNING! Using --password via the CLI is insecure. Use --password-stdin. |
||
+ | Login Succeeded |
||
+ | </PRE> |
||
+ | |||
+ | ===тест репозитория=== |
||
+ | Скачть образ |
||
+ | <PRE> |
||
+ | docker pull ubuntu:20.04 |
||
+ | 20.04: Pulling from library/ubuntu |
||
+ | Digest: sha256:bc2f7250f69267c9c6b66d7b6a81a54d3878bb85f1ebb5f951c896d13e6ba537 |
||
+ | Status: Downloaded newer image for ubuntu:20.04 |
||
+ | docker.io/library/ubuntu:20.04 |
||
+ | </PRE> |
||
+ | Добавить тег: |
||
+ | <PRE> |
||
+ | docker tag ubuntu:20.04 192.168.1.223:8083/ubuntu:20.04 |
||
+ | </PRE> |
||
+ | Залить |
||
+ | <PRE> |
||
+ | docker image ls | grep 20.04 |
||
+ | 192.168.1.223:8083/ubuntu 20.04 9140108b62dc 11 days ago 72.9MB |
||
+ | ubuntu 20.04 9140108b62dc 11 days ago 72.9MB |
||
+ | </PRE> |
||
+ | |||
+ | <PRE> |
||
+ | docker push 192.168.1.223:8083/ubuntu:20.04 |
||
+ | The push refers to repository [192.168.1.223:8083/ubuntu] |
||
+ | 782f5f011dda: Pushed |
||
+ | 90ac32a0d9ab: Pushed |
||
+ | d42a4fdf4b2a: Pushed |
||
+ | 20.04: digest: sha256:2e70e9c81838224b5311970dbf7ed16802fbfe19e7a70b3cbfa3d7522aa285b4 size: 943 |
||
+ | </PRE> |
||
+ | =Полезные ссылки= |
||
+ | ==Nexus== |
||
+ | * https://kamaok.org.ua/?p=2761 |
||
+ | * http://bhamail.github.io/pinexus/nexussetup.html |
Текущая версия на 11:35, 16 июля 2021
Репозиторий всего подряд
На Расберри есть некоторые особенности но в целом документация подходит для разных систем
Установка
apt install openjdk-8-jdk
java -version java version "1.8.0" Java(TM) SE Runtime Environment (build 1.8.0-b132) Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode)
Более новая Java может не работать - не тестировалось
Добавить репозиторий и ключ
/etc/apt/sources.list.d/sonatype-community.list
deb [arch=all] https://repo.sonatype.com/repository/community-apt-hosted/ bionic main #deb https://repo.sonatype.com/repository/community-apt-hosted/ bionic main
wget https://repo.sonatype.com/repository/community-hosted/pki/deb-gpg/DEB-GPG-KEY-Sonatype.asc
sudo apt-key add DEB-GPG-KEY-Sonatype.asc
apt-get update apt-get install nexus-repository-manager
Особенности установки под Rasberry
/opt/sonatype/nexus3/bin/nexus.vmoptions
-Xms1200M -Xmx1200M -XX:MaxDirectMemorySize=2G -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=/opt/sonatype/sonatype-work/nexus3/log/jvm.log -XX:-OmitStackTraceInFastThrow -Djava.net.preferIPv4Stack=true -Dkaraf.home=. -Dkaraf.base=. -Dkaraf.etc=etc/karaf -Djava.util.logging.config.file=etc/karaf/java.util.logging.properties -Dkaraf.data=/opt/sonatype/sonatype-work/nexus3 -Dkaraf.log=/opt/sonatype/sonatype-work/nexus3/log -Djava.io.tmpdir=/opt/sonatype/sonatype-work/nexus3/tmp -Dkaraf.startLocalConsole=false # # additional vmoptions needed for Java9+ # # --add-reads=java.xml=java.logging # --add-exports=java.base/org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED # --patch-module=java.base=lib/endorsed/org.apache.karaf.specs.locator-4.2.9.jar # --patch-module=java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-4.2.9.jar # --add-opens=java.base/java.security=ALL-UNNAMED # --add-opens=java.base/java.net=ALL-UNNAMED # --add-opens=java.base/java.lang=ALL-UNNAMED # --add-opens=java.base/java.util=ALL-UNNAMED # --add-opens=java.naming/javax.naming.spi=ALL-UNNAMED # --add-opens=java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED # --add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED # --add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED # --add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED # --add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED # --add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED # # comment out this vmoption when using Java9+ # -Djava.endorsed.dirs=lib/endorsed:/opt/sonatype/jna
От файла по умолчанию отличаются:
Настройки памяти Java-машины
-Xms1200M -Xmx1200M -XX:MaxDirectMemorySize=2G
Дополнительные библиотеки
-Djava.endorsed.dirs=lib/endorsed
-Djava.endorsed.dirs=lib/endorsed:/opt/sonatype/jna
JNA версии 4.5.0 не работает на расберри - нужно скачать и положить в /opt/sonatype/jna версию 5.6.0 (с другими не тестировал)
После чего найти grep и поправить все упоминания версии JNA
найти jar для jna и jna-platform можно гуглом в репозиториях
Проблемы
NumberFormatException: null
Ошибка со стектрейсом как в примере обозначает (скорее всего) что -Dkaraf.etc=etc/karaf указывает туда где нет файлов. А так как все пути относительные то это может быть следствием банально запуска руками (не через сервис) находясь в неправильном месте.
Error occurred shutting down framework: java.lang.NumberFormatException: null java.lang.NumberFormatException: null at java.lang.Integer.parseInt(Integer.java:542) at java.lang.Integer.parseInt(Integer.java:615) at org.apache.karaf.main.ConfigProperties.<init>(ConfigProperties.java:235) at org.apache.karaf.main.Main.updateInstancePidAfterShutdown(Main.java:227) at org.sonatype.nexus.karaf.NexusMain.main(NexusMain.java:67) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:85) at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:65)
Настройка и работа с Nexus
Docker
Запустить репозиторий на отдельном порту (в примере порт 8083)
Не уверен что докер может работать с репозиториями по url
Со стороны докер-клиента, добавить репозиторий в "небезопасные" (config.json) или настройки докермашины для OS X
После чего можно авторизоваться в репозитории (пароль указан автогенеренный для примера)
docker login http://192.168.1.223:8083 --username admin --password ahruec7U WARNING! Using --password via the CLI is insecure. Use --password-stdin. Login Succeeded
тест репозитория
Скачть образ
docker pull ubuntu:20.04 20.04: Pulling from library/ubuntu Digest: sha256:bc2f7250f69267c9c6b66d7b6a81a54d3878bb85f1ebb5f951c896d13e6ba537 Status: Downloaded newer image for ubuntu:20.04 docker.io/library/ubuntu:20.04
Добавить тег:
docker tag ubuntu:20.04 192.168.1.223:8083/ubuntu:20.04
Залить
docker image ls | grep 20.04 192.168.1.223:8083/ubuntu 20.04 9140108b62dc 11 days ago 72.9MB ubuntu 20.04 9140108b62dc 11 days ago 72.9MB
docker push 192.168.1.223:8083/ubuntu:20.04 The push refers to repository [192.168.1.223:8083/ubuntu] 782f5f011dda: Pushed 90ac32a0d9ab: Pushed d42a4fdf4b2a: Pushed 20.04: digest: sha256:2e70e9c81838224b5311970dbf7ed16802fbfe19e7a70b3cbfa3d7522aa285b4 size: 943