Annotation based docker extension implementation for ballerina.
- Dockerfile generation based on @docker:Config annotations.
- Docker image generation.
- Docker push support with docker registry.
- Docker based ballerina debug support.
- Copy file support.
- Supported with ballerina services or endpoints.
| Annotation Name | Description | Default value |
|---|---|---|
| name | Name of the docker image | output balx file name |
| registry | Docker registry | None |
| tag | Docker image tag | latest |
| buildImage | Whether to build docker image | true |
| dockerHost | Docker host IP and docker PORT. ( e.g minikube IP and docker PORT) | unix:///var/run/docker.sock |
| dockerCertPath | Docker cert path | null |
| baseImage | Base image to create the docker image | ballerina/ballerina:latest |
| enableDebug | Enable debug for ballerina | false |
| debugPort | Remote debug port | 5005 |
| push | Push to remote registry | false |
| username | Username for docker registry | None |
| password | Password for docker registry | None |
- Supported with ballerina services or endpoints.
| Annotation Name | Description | Default value |
|---|---|---|
| source | source path of the file (in your machine) | None |
| target | target path (inside container) | None |
| isBallerinaConf | flag whether file is a ballerina config file | false |
- Supported with ballerina endpoints.
- Download and install JDK 8 or later
- Get a clone or download the source from this repository (https://github.com/ballerinax/docker)
- Run the Maven command
mvn clean installfrom within the docker directory. - Copy
target/docker-extension-0.9***.jarfile to<BALLERINA_HOME>/bre/libdirectory. - Run
ballerina build <.bal filename>to generate artifacts.
The docker artifacts will be created in a folder called docker with following structure.
|── docker
| └── Dockerfile
└── outputfilename.balximport ballerina/http;
import ballerinax/docker;
@docker:Expose{}
endpoint http:Listener helloWorldEP {
port:9090
};
@http:ServiceConfig {
basePath:"/helloWorld"
}
@docker:Config {
registry:"docker.abc.com",
name:"helloworld",
tag:"v1.0"
}
service<http:Service> helloWorld bind helloWorldEP {
sayHello (endpoint outboundEP, http:Request request) {
http:Response response = new;
response.setTextPayload("Hello, World from service helloWorld ! \n");
_ = outboundEP -> respond(response);
}
}Refer samples for more info.