developer-experience-java-kubernetes
developer-experience-java-kubernetes copied to clipboard
How Tilt livereload works?
Can you explain a bit on how live-reload works in case of tilt?
# Build
custom_build(
# Name of the container image
ref = 'book-service',
# Command to build the container image
command = './gradlew bootBuildImage --imageName $EXPECTED_REF',
# Files to watch that trigger a new build
deps = ['build.gradle', './bin/main'],
# Enables live reload
live_update = [
sync('./bin/main', '/workspace/BOOT-INF/classes')
]
)
# Deploy
k8s_yaml(['config/deployment.yml', 'config/service.yml'])
# Manage
k8s_resource('book-service', port_forwards=['8080:8080', '9090:9090'])
In particular, what exactly is './bin/main'? I'm asking this question because I can't get this work and official examples are completely different.
@demkom58 thanks for your question. I have updated the documentation to add a bit more information: https://github.com/ThomasVitale/developer-experience-java-kubernetes/tree/main/04-tilt
The live reload functionality is based on three main aspects:
- The IDE continuously compiling your Java classes upon change (by default in Visual Studio Code, it must be configured in IntelliJ IDEA).
- The container image supporting reloading the Java process running inside the container when a Java class is changed (Paketo Buildpacks ensures that support when using the Base builder).
- A tool like Tilt or Skaffold transferring compiled Java classes from the local folder (
./bin/mainin Visual Studio Code,./build/classes/java/mainand./build/resources/mainin IntelliJ IDEA) into the container (/workspace/BOOT-INF/classeswhen using Paketo Buildpacks).
You can find additional information on the Paketo Buildpacks official documentation: https://paketo.io/docs/howto/java/#enable-process-reloading