{{tag>[docker push pull]}}

====== Nexus ======

====== Docker ======

<code bash>
$ docker exec -u root -it docker-nexus3-nexus-1 /bin/bash
$ docker logs docker-nexus3-nexus-1
</code>

====== Console / Connect database ======

<code bash>
$ cd /tmp && java -jar $NEXUS_HOME/lib/support/nexus-orient-console.jar && chown -R nexus:nexus /nexus-data/db
$ connect plocal:/nexus-data/db/component admin admin
$ connect plocal:/nexus-data/db/config admin admin
$ connect plocal:/nexus-data/db/security admin admin
</code>

====== Passord reset ======

<code bash>
$ connect plocal:/nexus-data/db/security admin admin
$ update user SET password="$shiro1$SHA-512$1024$NE+wqQq/TmjZMvfI7ENh/g==$V4yPw8T64UQ6GfJfxYq2hLsVrBY8D1v+bktfOxGdt4b/9BthpWPNUy/CBk6V9iA0nHpzYzJFWO8v/tZFtES8CA==" UPSERT WHERE id="admin"
$ exit
</code>

===== Repair database component/config/security =====

====== Database config ======

<code bash>
$ cd /tmp && java -jar $NEXUS_HOME/lib/support/nexus-orient-console.jar
$ connect plocal:/nexus-data/db/config admin admin
$ REBUILD INDEX *
$ REPAIR DATABASE --fix-graph
$ REPAIR DATABASE --fix-links
$ REPAIR DATABASE --fix-ridbags
$ REPAIR DATABASE --fix-bonsai
$ REPAIR DATABASE config
$ DISCONNECT
$ exit
</code>

====== Database component ======

<code bash>
$ cd /tmp && java -jar $NEXUS_HOME/lib/support/nexus-orient-console.jar
$ connect plocal:/nexus-data/db/component admin admin
$ REBUILD INDEX *
$ REPAIR DATABASE --fix-graph
$ REPAIR DATABASE --fix-links
$ REPAIR DATABASE --fix-ridbags
$ REPAIR DATABASE --fix-bonsai
$ REPAIR DATABASE component
$ DISCONNECT
$ exit
</code>

====== Database security ======

<code bash>
$ cd /tmp && java -jar $NEXUS_HOME/lib/support/nexus-orient-console.jar
$ connect plocal:/nexus-data/db/security admin admin
$ REBUILD INDEX *
$ REPAIR DATABASE --fix-graph
$ REPAIR DATABASE --fix-links
$ REPAIR DATABASE --fix-ridbags
$ REPAIR DATABASE --fix-bonsai
$ REPAIR DATABASE security
$ DISCONNECT
$ exit
</code>

<code bash>
Nexus is insufficient, and some ".wal" files are created in folder "/nexus-data/db/config". After deleting them, everything is restored.
</code>

===== Repaire database component ===== 

<code bash>
$ REBUILD INDEX *
$ export database component-export
$ drop database
$ CREATE DATABASE PLOCAL:/nexus-data/db/component
$ import database component-export.json.gz
$ REBUILD INDEX *
$ REPAIR DATABASE --fix-graph
$ REPAIR DATABASE --fix-links
$ REPAIR DATABASE --fix-ridbags
$ REPAIR DATABASE --fix-bonsai
$ DISCONNECT
</code>

==== Upgrade version ====

<code bash>
$ cd /tmp && java -jar $NEXUS_HOME/lib/support/nexus-orient-console.jar && chown -R nexus:nexus /nexus-data/db
$ connect plocal:/nexus-data/db/config admin admin
orientdb {db=config}> select from upgrade_model_versions
</code>

==== The record can be deleted as follows ====

<code bash>
$ load record
$ truncate record
$ rebuild index asset_bucket_component_name_idx
$ REPAIR DATABASE component
$ DISCONNECT
$ exit
</code>

<code bash>
$ drop class quartz_trigger
$ REPAIR DATABASE component
$ DISCONNECT
$ exit
</code>

<code bash>
$ load record
$ truncate record
$ rebuild index asset_bucket_component_name_idx
$ REPAIR DATABASE component
</code>

===== Использование =====

==== Docker ====

<code json>
{
  "experimental": true,
  "features": {
    "buildkit": true
  },
  "insecure-registries": [
    "192.168.1.132:8182"
  ],
  "registry-mirrors": [
    "http://192.168.1.132:8182"
  ]
}
</code>

<code bash>
$ docker build --build-arg domain={domain} -t lampa:latest .
$ docker login 192.168.1.132:8181
$ docker tag lampa:latest 192.168.1.132:8181/lampa-tv
$ docker push 192.168.1.132:8181/lampa-tv
</code>
