Site Loader
Java met Docker in IntelliJ

Vanuit IntelliJ is het mogelijk om een Java applicatie te deployen in een Docker image en te runnen zonder command line.

Vereisten:

  • Docker is geinstalleerd op je pc
  • Docker daemon draait

Stappen:

  • maak een HelloWorld Java applicatie (let op dat je java versie overeenkomst met die van de Dockerfile)
  • maak in het Java project een nieuw bestand genaamd ‘Dockerfile’
  • plak het volgende in de Dockerfile:
FROM openjdk:11
COPY ./out/production/HelloWorld/ /tmp
WORKDIR /tmp
ENTRYPOINT ["java","HelloWorld"]
  • in de kantlijn van de Dockerfile klik je vervolgens op de dubbele groene pijltjes en kies je: run ‘Dockerfile’
  • in de build log zie je nu dat de Docker image wordt aangemaakt
  • tenslotte wordt de Docker image gerund in een Docker container en zie je de output in de log tab
  • de image kun je vervolgens uploaden naar bijvoorbeeld Dockerhub

Problemen:

geen connectie met Docker socket:

  • als je de melding ‘Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?’ krijgt kan het zijn dat je IntelliJ via Flatpak hebt geinstalleerd waardoor je geen toegang hebt tot de Docker socket
  • in dat geval moet je de flatpak sandbox omgeving overrulen met:
flatpak override --user --filesystem=/run/docker.sock com.jetbrains.IntelliJ-IDEA-Ultimate

om de override weer ongedaan te maken:

flatpak override --reset --user com.jetbrains.IntelliJ-IDEA-Ultimate

geen image naam/tag voor de Docker image:

  • als je image geen naam / tag heeft kies dan de Dockerfile en vanuit het menu Run -> Edit Configurations
  • vul dan een naam in bij ‘image tag’ (alleen kleine letters) en klik OK
  • voer dan nog een keer een image build uit

Post Author: admin

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.