mirror of
https://github.com/jlengrand/helidon.git
synced 2026-03-10 08:21:17 +00:00
Create a new parent pom hierarchy to fit new applications-pom Updated all examples to use the new application-poms Normalized examples README.md Updated examples Dockerfile to multi-stage Remove dependency management for microprofile-metrics-api and leverage the transitive dependencies of helidon-metrics and helidon-metrics2.
3.0 KiB
3.0 KiB
Docker build with local SNAPSHOT
Start Nexus
docker volume create --name nexus-data
docker run -d -p 8081:8081 --name nexus -v nexus-data:/nexus-data sonatype/nexus3
Nexus can take some time to start, ping the following URL to check the status:
http://localhost:8081
Configure nexus credentials
<settings>
<servers>
<server>
<id>local-nexus</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
</settings>
Deploy SNAPSHOT artifacts to Nexus
mvn deploy -DskipTests \
-DaltDeploymentRepository=local-nexus::default::http://localhost:8081/repository/maven-snapshots
Update the Dockerfile
Create a settings.xml as follow:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>/tmp/repository</localRepository>
<profiles>
<!--
A profile that configure an additional repository and pluginRepository
when X_REPO is set in the environment.
-->
<profile>
<id>x-repo</id>
<activation>
<property>
<name>env.X_REPO</name>
</property>
</activation>
<repositories>
<repository>
<id>x-repo</id>
<url>${env.X_REPO}</url>
<snapshots>
<updatePolicy>never</updatePolicy>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>x-repo</id>
<url>${env.X_REPO}</url>
<snapshots>
<updatePolicy>never</updatePolicy>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
</settings>
Update the Dockerfile and add the following lines:
# A build time argument that can be used to configure an extra Maven repository.
# E.g. --build-arg X_REPO=my-repo-url
ARG X_REPO
ADD settings.xml /usr/share/maven/conf/
Build your image
Replace DOCKER_HOST with a host name or IP address that can be used to reach
the nexus server from inside a container. (E.g. docker.for.mac.localhost).
docker build \
--build-arg X_REPO=http://DOCKER_HOST:8081/repository/maven-public \
-t my-image-tag \
.