Micronaut Microkaos Application

Overview

Micronaut 3.1.3 Documentation


Push GraalVM Native Image To Docker Registry Workflow

Workflow file: .github/workflows/graalvm.yml

Workflow description

For pushes to the master branch, the workflow will:

  1. Setup the build environment with respect to the selected java/graalvm version.
  2. Login to docker registry based on provided configuration.
  3. Build, tag and push Docker image with Micronaut application to the Docker container image.

Dependencies on other GitHub Actions

  • Docker login(docker/login)
  • Setup GraalVM(DeLaGuardo/setup-graalvm)

Setup

Add the following GitHub secrets:

Name Description
DOCKER_USERNAME Username for Docker registry authentication.
DOCKER_PASSWORD Docker registry password.
DOCKER_REPOSITORY_PATH Path to the docker image repository inside the registry, e.g. for the image foo/bar/micronaut:0.1 it is foo/bar.
DOCKER_REGISTRY_URL Docker registry url.

Configuration examples

Specifics on how to configure public cloud docker registries like DockerHub, Google Container Registry (GCR), AWS Container Registry (ECR), Oracle Cloud Infrastructure Registry (OCIR) and many more can be found in docker/login-action documentation.

DockerHub

  • DOCKER_USERNAME - DockerHub username
  • DOCKER_PASSWORD - DockerHub password or personal access token
  • DOCKER_REPOSITORY_PATH - DockerHub organization or the username in case of personal registry
  • DOCKER_REGISTRY_URL - No need to configure for DockerHub

See docker/login-action for DockerHub

Google Container Registry (GCR)

Create service account with permission to edit GCR or use predefined Storage Admin role.

  • DOCKER_USERNAME - set exactly to _json_key
  • DOCKER_PASSWORD - content of the service account json key file
  • DOCKER_REPOSITORY_PATH - <project-id>/foo
  • DOCKER_REGISTRY_URL - gcr.io

See docker/login-action for GCR

AWS Elastic Container Registry (ECR)

Create IAM user with permission to push to ECR (or use AmazonEC2ContainerRegistryFullAccess role).

  • DOCKER_USERNAME - access key ID
  • DOCKER_PASSWORD - secret access key
  • DOCKER_REPOSITORY_PATH - no need to set
  • DOCKER_REGISTRY_URL - set to <aws-account-number>.dkr.ecr.<region>.amazonaws.com

See docker/login-action for ECR

Oracle Infrastructure Cloud Registry (OCIR)

Create auth token for authentication.

  • DOCKER_USERNAME - username in format <tenancy>/<username>
  • DOCKER_PASSWORD - account auth token
  • DOCKER_REPOSITORY_PATH - <tenancy>/<registry>/foo
  • DOCKER_REGISTRY_URL - set to <region>.ocir.io

See docker/login-action for OCIR

Azure Container Instance GraalVM Workflow

Workflow file: .github/workflows/azure-container-instance-graalvm.yml

Workflow description

For pushes to the master branch, the workflow will:

  1. Setup the build environment with respect to the selected java/graalvm version.
  2. Login to Docker registry.
  3. Login to Azure Command-Line Interface.
  4. Build, tag and push Docker image with Micronaut application to the Docker Registry.
  5. Deploy to Azure Container Instances.

Dependencies on other GitHub Actions

Setup

Add the following GitHub secrets:

Name Description
DOCKER_USERNAME Docker registry username. In case of Azure Container Registry, provide Azure username or Service principal ID, see more on Azure Container Registry authentication with service principals.
DOCKER_PASSWORD Docker registry password. In case of Azure Container Registry, provide Azure password or Service principal password.
DOCKER_REPOSITORY_PATH Docker image repository. In case of Azure Container Registry, for image micronaut.azurecr.io/foo/bar:0.1, the foo is an image repository.
DOCKER_REGISTRY_URL Docker registry url. In case of Azure Container Registry use the Container registry login path, e.g. for the image micronaut.azurecr.io/foo/bar:0.1, the micronaut.azurecr.io is a registry url.
AZURE_CREDENTIALS Azure Service Principal, see more on Azure/aci-deploy#Azure Service Principal for RBAC.
AZURE_RESOURCE_GROUP Azure Resource Group name, see more on Resource groups.

The workflow file also contains additional configuration options that are now configured to:

Name Description Default value
AZURE_LOCATION Location where the Container Instance will be created. See Resource availability for Azure Container Instances in Azure regions to find out what regions are supported. westeurope
AZURE_DNS_LABEL The dns name label for container group with public IP. microkaos

Verification

Call the rest api endpoint [AZURE_DNS_LABEL].[AZURE_LOCATION].azurecontainer.io:[PORT]/microkaos:

curl http://microkaos.westeurope.westeurope.azurecontainer.io:8080/microkaos

Push To Docker Registry Workflow

Workflow file: .github/workflows/gradle.yml

Workflow description

For pushes to the master branch, the workflow will:

  1. Setup the build environment with respect to the selected java/graalvm version.
  2. Login to docker registry based on provided configuration.
  3. Build, tag and push Docker image with Micronaut application to the Docker container image.

Dependencies on other GitHub Actions

  • Docker login(docker/login)
  • Setup GraalVM(DeLaGuardo/setup-graalvm)

Setup

Add the following GitHub secrets:

Name Description
DOCKER_USERNAME Username for Docker registry authentication.
DOCKER_PASSWORD Docker registry password.
DOCKER_REPOSITORY_PATH Path to the docker image repository inside the registry, e.g. for the image foo/bar/micronaut:0.1 it is foo/bar.
DOCKER_REGISTRY_URL Docker registry url.

Configuration examples

Specifics on how to configure public cloud docker registries like DockerHub, Google Container Registry (GCR), AWS Container Registry (ECR), Oracle Cloud Infrastructure Registry (OCIR) and many more can be found in docker/login-action documentation.

DockerHub

  • DOCKER_USERNAME - DockerHub username
  • DOCKER_PASSWORD - DockerHub password or personal access token
  • DOCKER_REPOSITORY_PATH - DockerHub organization or the username in case of personal registry
  • DOCKER_REGISTRY_URL - No need to configure for DockerHub

See docker/login-action for DockerHub

Google Container Registry (GCR)

Create service account with permission to edit GCR or use predefined Storage Admin role.

  • DOCKER_USERNAME - set exactly to _json_key
  • DOCKER_PASSWORD - content of the service account json key file
  • DOCKER_REPOSITORY_PATH - <project-id>/foo
  • DOCKER_REGISTRY_URL - gcr.io

See docker/login-action for GCR

AWS Elastic Container Registry (ECR)

Create IAM user with permission to push to ECR (or use AmazonEC2ContainerRegistryFullAccess role).

  • DOCKER_USERNAME - access key ID
  • DOCKER_PASSWORD - secret access key
  • DOCKER_REPOSITORY_PATH - no need to set
  • DOCKER_REGISTRY_URL - set to <aws-account-number>.dkr.ecr.<region>.amazonaws.com

See docker/login-action for ECR

Oracle Infrastructure Cloud Registry (OCIR)

Create auth token for authentication.

  • DOCKER_USERNAME - username in format <tenancy>/<username>
  • DOCKER_PASSWORD - account auth token
  • DOCKER_REPOSITORY_PATH - <tenancy>/<registry>/foo
  • DOCKER_REGISTRY_URL - set to <region>.ocir.io

See docker/login-action for OCIR

Feature kubernetes documentation

Feature management documentation

Feature github-workflow-graal-docker-registry documentation

Feature github-workflow-azure-container-instance-graalvm documentation

Feature reactor documentation

Feature assertj documentation

Feature http-client documentation

Feature mongo-reactive documentation

Feature github-workflow-docker-registry documentation

Feature jmx documentation

Feature mockito documentation

Feature testcontainers documentation

You might also like...
❤️ A sample Marvel heroes application based on MVVM (ViewModel, Coroutines, LiveData, Room, Repository, Koin)  architecture.
❤️ A sample Marvel heroes application based on MVVM (ViewModel, Coroutines, LiveData, Room, Repository, Koin) architecture.

MarvelHeroes MarvelHeroes is a demo application based on modern Android application tech-stacks and MVVM architecture. Fetching data from the network

 🍲Foodium is a sample food blog Android application 📱 built to demonstrate the use of Modern Android development tools - (Kotlin, Coroutines, Flow, Dagger 2/Hilt, Architecture Components, MVVM, Room, Retrofit, Moshi, Material Components).
Kotlin TodoMVC – full-stack Kotlin application demo

Kotlin full stack TodoMVC This project is an example implementation of the TodoMVC app written in Kotlin. More specifically, it's the Kotlin port of t

An Intentionally designed Vulnerable Android Application built in Kotlin.

📱 InsecureShop InsecureShop is an Android application that is designed to be intentionally vulnerable. The aim of creating this app is to teach devel

Collection of Rewrite Recipes pertaining to the JHipster web application & microservice development platform
Collection of Rewrite Recipes pertaining to the JHipster web application & microservice development platform

Apply JHipster best practices automatically What is this? This project implements a Rewrite module that applies best practices and migrations pertaini

This is a simple Rest Api for todo application

This is a simple Rest Api for todo application , where users do signup, login and add their respective todos. So this api is fully based on Ktor framework.

A small application for working with the Github API, made as a practical task. GeekBrains, course of study: Popular libraries: RxJava 2, Dagger 2, Moxie.
A small application for working with the Github API, made as a practical task. GeekBrains, course of study: Popular libraries: RxJava 2, Dagger 2, Moxie.

GeekBrains_Course_AndroidOnKotlin_HW_My_Movie Домашнее задание к занятию №2-6 Студента GeekBrains Веремеенко Дмитрия Факультет: Android-разработки Кур

🔥The Android Startup library provides a straightforward, performant way to initialize components at the application startup. Both library developers and app developers can use Android Startup to streamline startup sequences and explicitly set the order of initialization.
🔥The Android Startup library provides a straightforward, performant way to initialize components at the application startup. Both library developers and app developers can use Android Startup to streamline startup sequences and explicitly set the order of initialization.

🔥The Android Startup library provides a straightforward, performant way to initialize components at the application startup. Both library developers and app developers can use Android Startup to streamline startup sequences and explicitly set the order of initialization.

A kotlin based server for the milky store mobile application
A kotlin based server for the milky store mobile application

Milky Store backend server A kotlin 💜 💜 based backend server to power up the milky store android application FEATURES : Secure serialisation 🤯 lead

Owner
Albert Kuliński
Albert Kuliński
kotlin micronaut sample

Micronaut 3.1.3 Documentation User Guide API Reference Configuration Reference Micronaut Guides Feature data-r2dbc documentation Micronaut Data R2DBC

Hodong 0 Nov 1, 2021
Aplicação Micronaut GRPC utilizando Kotlin e arquitetura Hexagonal

micronaut-grpc-demo Aplicação Micronaut GRPC utilizando Kotlin e arquitetura Hexagonal #Baixando e configurando um container Postgres: Postgres: docke

Paulo César de Souza 0 Nov 15, 2021
An example of a SQS consumer using Micronaut

Micronaut 3.0.3 Documentation User Guide API Reference Configuration Reference Micronaut Guides Feature http-client documentation Micronaut HTTP Clien

Matheus Ferreira 1 Apr 1, 2022
Microservice kotlin micronaut

Arquitetura de Microserviços Instruções Criando rede no docker: docker network c

null 1 Dec 25, 2021
Simple use of Micronaut + Kotlin, implementation of UserContext

Micronaut 3.1.4 Documentation User Guide API Reference Configuration Reference Micronaut Guides Feature jdbc-hikari documentation Micronaut Hikari JDB

null 0 Jan 16, 2022
Android application compatible with ZX2C4's Pass command line application

Password Store Download Documentation We're in the process of rewriting our documentation from scratch, and the work-in-progress state can be seen her

Android Password Store 2.2k Dec 29, 2022
This is an example of a simple application with layered software base on clean-architecture as application architecture and mvvm as presentation architecture

This is an example of a simple application with layered software base on clean-architecture as application architecture and mvvm as presentation archi

null 3 Jul 2, 2021
A simple Android application to store daily notes in the internal database of the application

Simple Note App Note App is a simple Android application to store daily notes in the internal database of the application and can store an image or a

Heba Elsaid 5 Jun 3, 2022
:blue_book: A diary application optimized for user experience.

Easy Diary README of Korean(한국어) This is a diary application optimized for user experience. Demo videos Basic function preview Support Features 01. Wr

Bulbasaur 316 Jan 1, 2023
📒 NotyKT is a complete 💎Kotlin-stack (Backend + Android) 📱 application built to demonstrate the use of Modern development tools with best practices implementation🦸.

NotyKT ??️ NotyKT is the complete Kotlin-stack note taking ??️ application ?? built to demonstrate a use of Kotlin programming language in server-side

Shreyas Patil 1.4k Dec 26, 2022