[JAVA] Ich habe versucht, mit Wercker ein Docker-Image zu erstellen und zu veröffentlichen, mit dem GlassFish 5 gestartet wird

Verwenden Sie Wercker, um ein Docker-Image der Umgebung zu erstellen, in der GlassFish5 unter CentOS ausgeführt wird.

Erläuterung

Wercker ist eine Docker-basierte CI / CD-Automatisierungsplattform.

GlassFish 5 ist ein Anwendungsserver, der eine Referenzimplementierung von Java EE 8 darstellt. Derzeit wird die offizielle Version entwickelt und als Beta-Version erstellt und veröffentlicht.

Die Erstellung eines Images dieser auf Docker basierenden GlassFish 5-Umgebung wurde nachfolgend erläutert:

Oben ist das Verfahren zum Erstellen eines Docker-Images in der Docker-Datei definiert, und das Docker-Image wird vom Automated Build of Docker Hub erstellt und veröffentlicht.

Dieses Mal verwenden wir Wercker, um das Verfahren zum Erstellen eines Docker-Images zu definieren und es in Docker Hub zu veröffentlichen.

Im vorherigen Verfahren wurde auch die Kombination von Oracke Java und Oracle Linux verwendet, diesmal wird die Umgebung jedoch CentOS und OpenJDK sein.

Operationsbild

Zu erstellende Umweltinformationen

Annahme

Besitzen der folgenden Konten:

Verfahren

1. Lassen Sie das Repository auf GitHub veröffentlichen

2. Bearbeiten Sie wercker.xml

Ändern Sie den folgenden Teil von wercker.xml in Ihre eigenen Informationen.

--BENUTZERNAME: DockerHub-Kontoname --PASSWORT: DockerHub-Passwort --DOCKER_IMAGE_NAME: Zu veröffentlichender Bildname --DOCKER_IMAGE_TAG: Tag, das an das zu veröffentlichende Bild angehängt ist --DOCKER_IMAGE'S_AUTHOR_NAME: Erstellerinformationen

- internal/docker-push:
     username: [USERNAME]
     password: [PASSWORD]
     repository: [DOCKER_IMAGE_NAME]
     tag: [DOCKER_IMAGE_TAG]
     author: [DOCKER_IMAGE'S_AUTHOR_NAME]
     cmd: /bin/bash --login

Diese Informationen können auch in Wercker als Umgebungsvariable festgelegt werden, ohne dass sie direkt in wercker.xml geschrieben werden müssen.

3. Definition der Wercker-Anwendung

3.1. Create Application

Wählen Sie "Erstellen" -> "Anwendung" aus dem Menü oben auf dem Bildschirm

3.2. Repository-Einstellungen

Wählen Sie GitHub oder Bitbucket und das dort verwaltete Wercker-Anwendungsrepository aus.

Klicken Sie bei Auswahl auf Ausgewähltes Repo verwenden.

3.3. Zugriffsmethodeneinstellungen

Übernehmen Sie die Standardeinstellung (verwenden Sie keinen SSH-Schlüssel) und klicken Sie auf Nächster Schritt.

3.4. Öffentliche / private Auswahl

Wählen Sie aus, ob die hier definierte Wercker-Anwendung öffentlich oder privat verfügbar gemacht werden soll. Wenn Sie es veröffentlichen möchten, wählen Sie "Meine App öffentlich machen".

3.5. Bauen

Klicken Sie nach dem Übergang zur Registerkarte "Erstellen" unten auf dem Bildschirm auf "Jetzt erstellen".

3.6. Definition von Umgebungsvariablen

Wenn Sie in Schritt 2 Umgebungsvariablen verwendet haben, definieren Sie diese auf der Registerkarte ** Umgebung **. Informationen, die Sie nicht offenlegen möchten, wie z. B. Kennwörter, können ausgeblendet werden.

3.7. Überprüfen Sie den Build-Status

Sie können den Build-Status in Echtzeit mit dem Build-Tag überprüfen.

4. Abrufen und Verwenden von Bildern von Docker Hub

Wenn der Build mit Wercker erfolgreich ist, wird er mit dem definierten Image-Namen in DockerHub veröffentlicht. Von hier aus machen Sie "Docker Pull", um das Bild zu verwenden.

5. Starten Sie den Docker-Container

Das von mir veröffentlichte Docker Hub-Image wird folgendermaßen gestartet:

docker run -it --rm -p 4848:4848 -p 8080:8080 shinyay/centos7-openjdk8-glassfish5

Nach dem Start wird die Shell ** start-domain.sh ** zum Starten unmittelbar nach dem Start in das Verzeichnis gestellt, um das Starten von GlassFish 5 zu vereinfachen. Dadurch wird die Standarddomäne (Domäne1) gestartet.

[root@4e1fb53e79af ~]# ls
anaconda-ks.cfg  start-domain.sh

[root@4e1fb53e79af ~]# ./start-domain.sh

Ich werde den Start überprüfen

[root@4e1fb53e79af ~]# asadmin list-domains
domain1 running
Command list-domains executed successfully.

Öffentliches Repository

Zusammenfassung

Dieses Mal verwenden wir eine einzelne Pipeline, ohne den Workflow zu berücksichtigen. In dieser Pipeline erstellen und veröffentlichen wir sogar Bilder. Ich denke darüber nach, dies zu einer separaten Pipeline zu machen und eine Pipeline zu erstellen, die Bilder verschiedener Versionen und Umgebungen parallel erstellt und veröffentlicht.

Recommended Posts

Ich habe versucht, mit Wercker ein Docker-Image zu erstellen und zu veröffentlichen, mit dem GlassFish 5 gestartet wird
Ich habe versucht, mit Docker eine Padrino-Entwicklungsumgebung zu erstellen
[Rails 6.0, Docker] Ich habe versucht, die Konstruktion der Docker-Umgebung und die zum Erstellen eines Portfolios erforderlichen Befehle zusammenzufassen
Ich habe versucht, Docker und Maven / Netbean mit Jib gut zu integrieren
Verwenden Sie Jenkins, um in Docker zu erstellen und dann ein Docker-Image zu erstellen.
Shell-Skript, das ein Docker-Image erstellt und an ECR weiterleitet
Ich habe versucht, AdoptOpenJDK 11 (11.0.2) mit dem Docker-Image zu überprüfen
Ich habe versucht, eine LINE-Klon-App zu erstellen
Ich habe versucht, einen Server mit Netty zu implementieren
Ich habe versucht, ein Portfolio mit AWS, Docker, CircleCI, Laravel [mit Referenzlink] zu erstellen.
[Einführung in Docker] Erstellen Sie ein Docker-Image für maschinelles Lernen und verwenden Sie das Jupyter-Notizbuch
Erstellen Sie ein Docker-Image, um eine einfache Java-App auszuführen
Ich habe versucht, eine Clova-Fähigkeit in Java zu erstellen
Ich habe versucht, mit Java und Spring eine Funktion / einen Bildschirm für den Administrator einer Einkaufsseite zu erstellen
Ich habe versucht, mit Chocolatey eine Java8-Entwicklungsumgebung zu erstellen
[Rails] Ich habe versucht, eine Mini-App mit FullCalendar zu erstellen
Ich habe versucht, dies und das von Spring @ Transactional zu überprüfen
Ich habe versucht, eine React.js x TypeScript x Material-Benutzeroberfläche in einer Docker-Umgebung zu erstellen
Ich habe versucht, die Umgebung nach und nach mit Docker aufzubauen
Ich habe eine Docker-Datei erstellt, um Glassfish 5 mit Oracle Java zu starten
Ich habe versucht, eine Spring MVC-Entwicklungsumgebung auf einem Mac zu erstellen
[Unity] Ich habe mit NWPathMonitor ein natives Plug-In UniNWPathMonitor erstellt
Ich habe versucht, eine einfache Anwendung mit Dockder + Rails Scaffold zu erstellen
2. Erstellen Sie ein Docker-Image und registrieren Sie die Registrierung
Erstellen Sie ein Docker-Image für redoc-cli und registrieren Sie es auf Docker Hub
Ich habe versucht, eine Anwendung für maschinelles Lernen mit Dash (+ Docker) Teil 1 ~ Umgebungskonstruktion und Funktionsprüfung ~ zu erstellen
Ich habe versucht, eine einfache Gesichtserkennungs-Android-Anwendung mit OpenCV zu erstellen
Ich habe WSL2 + Ubuntu in Window10 eingeführt und versucht, GDC, DMD, LDC zu verwenden
[Rails] Ich habe versucht, eine Transaktion zu implementieren, die mehrere DB-Prozesse kombiniert
Ich habe versucht, eine Web-API zu erstellen, die mit Quarkus eine Verbindung zur Datenbank herstellt
Ich habe versucht, mit OpenTrip Planner und GTFS eine eigene Übertragungsanleitung zu erstellen
Ich habe einen Arbitrage-Transaktionsbot für virtuelle Währungen erstellt und versucht, Geld zu verdienen
[Docker] So erstellen Sie eine virtuelle Umgebung für Rails- und Nuxt.js-Apps
Ich habe versucht, mit AI "A3RT" eine Talk-App in Java zu erstellen.
So erstellen Sie eine bequeme Methode, die Generika und eine funktionale Schnittstelle verwendet
Erstellen Sie mit Docker schnell eine Webumgebung
Ich habe versucht, Scalar DL mit Docker zu verwenden
Was ist Docker? Ich habe versucht zusammenzufassen
Docker Compact Manual (4: Erstellen eines benutzerdefinierten Bildes)
[Java] Ich habe JDBC installiert und versucht, eine Verbindung mit Servlet + MySQL herzustellen. (Es gibt eine Version mit DAO / Bean)
So erstellen Sie ein kleines Docker-Image der openjdk 11 (ea) -Anwendung (1 GB → 85 MB)
[Android] Ich möchte einen ViewPager erstellen, der für Tutorials verwendet werden kann
Ich habe eine App für maschinelles Lernen mit Dash (+ Docker) Teil 3 ~ Übung ~ erstellt
Eine Geschichte, als ich versuchte, ein Video zu erstellen, indem ich Processing und Resolume verknüpfte
Testen, erstellen und verschieben Sie Docker-Images mithilfe von GitHub-Aktionen in die GitHub-Container-Registrierung
Ein Memo zum Erstellen eines einfachen Formulars, das nur HTML und CSS in Rails 6 verwendet
[Java] Ich habe versucht, über den Verbindungspool eine Verbindung mit Servlet (Tomcat) & MySQL & Java herzustellen
Ich habe versucht, ein Formular mit Spring MVC und Jasper Reports Extra Edition (Bildausgabe) zu drucken.
[Azure] Ich habe versucht, eine Java-App für die Erstellung von kostenlosen Web-Apps zu erstellen. [Anfänger]