Usando Docker para criar um ambiente de desenvolvimento Spring Boot

Поделиться
HTML-код
  • Опубликовано: 27 ноя 2024

Комментарии • 74

  • @alanne.soares
    @alanne.soares 6 месяцев назад

    Perfeito! A parte do rebuild e gerar imagem era o que eu precisava ❤ Obrigada William!!! Que show 🎉🎉🎉

  • @walfredoalmeida7750
    @walfredoalmeida7750 2 года назад

    algaworks o melhor em falando de java. deu tudo certo no sts.

  • @moreirasilvio
    @moreirasilvio 9 месяцев назад

    Show de bola!

  • @fernandokramer9066
    @fernandokramer9066 2 года назад +2

    Tudo oque eu precisava saber para subir minha aplicação, muito obrigado, me ajudou d+

  • @crcaires
    @crcaires Год назад

    Muito topppp meu amigo

  • @jordanqueiroga2395
    @jordanqueiroga2395 4 года назад +8

    Parabéns pelo conteúdo!! Ajudou muito, esta pesquisando exatamente isso no meu fds e não tinha encontrado algo tão bem explicado, ajudou de mais mesmo!
    Seria legal também mostrar como seria esse ambiente de desenvolvimento com testes de integração com banco de dados, tentei e sempre dá erro, qndo rodo meus testes ele não consegue fazer a comunicação com o banco de dados, acho q deve ser a dor de muitos programadores que estão iniciando no mundo Docker tbm.

    • @wildrimak
      @wildrimak 4 года назад +1

      Estou exatamente tentando resolver esse problema também, se achar algo antes me manda aqui

    • @willbalan1
      @willbalan1 4 года назад +1

      Opa, valeu Jordan!
      Só pra eu entender melhor, como está a estrutura da sua aplicação com o banco de dados?

    • @jordanqueiroga2395
      @jordanqueiroga2395 4 года назад

      @@willbalan1 Na verdade eu tentei criar meu ambiente de desenvolvimento com docker-compose.yml. Se fosse para iniciar cada contêiner manualmente, funcionaria, mas quero tudo automático. Nele eu configurei o Redis e o MySql tudo no application.properties.
      Adicionei uma branch no meu projeto do GitHub chamada add_docker_compose: github.com/JordanQueiroga/harrypoterCrudAPI/tree/add_docker_compose

  • @MateeusSouza
    @MateeusSouza 4 года назад +5

    Tooop! Há muito tempo eu procuro como fazer isso. Já vou usar no SRI que está acontecendo nessa semana. Valeu William!

    • @willbalan1
      @willbalan1 4 года назад

      Que massa, Mateus! Fico feliz em poder ajudar :D

  • @arianerocha4
    @arianerocha4 2 года назад

    Olha, se eu pudesse te daria 1000 likes. Obrigada por compartilhar conosco seu conhecimento!

  • @alexandremv2011
    @alexandremv2011 2 года назад

    Muito bom. Me ajudou muito.

  • @erivancledson
    @erivancledson 4 года назад +1

    Eu estava precisando disso, muito obrigado!

    • @willbalan1
      @willbalan1 4 года назад

      Opa, que ótimo que pudemos ajudar, Erivan!

  • @eugenioguezanefiado9035
    @eugenioguezanefiado9035 4 года назад +2

    Gostei do tema

    • @willbalan1
      @willbalan1 4 года назад

      Opa, muito obrigado Eugenio! Que bom que gostou!

  • @geovanefreitasacetech
    @geovanefreitasacetech 3 года назад

    Parabéns pela didática, muito boa.

  • @joaopauloantoniazzidemorae5334
    @joaopauloantoniazzidemorae5334 4 года назад

    Show de Aula William!! Parabéns!!!

  • @marciovelasco8106
    @marciovelasco8106 3 года назад

    Meus parabéns pelo vídeo. Faz um curso completo... Exemplo eu queria saber se teria como subir uma imagem criada pela gente.
    Tenho interesse em aprender Jenkis.

  • @kelsonmenezes5560
    @kelsonmenezes5560 2 года назад +2

    Galera da Alga Works sempre arrasando! Parabéns!
    Uma dúvida, esse configuração do devtools para o Docker, alguém sabe como fazer para o STS/Eclipse?
    Obrigado

  • @andresaleite
    @andresaleite 3 года назад

    Muito bom!

  • @JRKUNW
    @JRKUNW 3 года назад +1

    Muito top essa dica, seria bacana também mostrar como que faz no gradle, uma pergunta por curiosidade, porque a Algaworks não usa o gradle nos projetos do curso sendo que ele pe bem mais simples que o maven?

  • @danton955
    @danton955 4 года назад +1

    Muito bom...

    • @willbalan1
      @willbalan1 4 года назад

      Valeu mesmo hein Danton!

  • @mateusfonseca988
    @mateusfonseca988 4 месяца назад

    se tem alga tem like

  • @brunol9262
    @brunol9262 4 года назад +1

    Essa série do Docker ta boa demais, obrigado! Uma dúvida, para trabalhar em equipe, depois que eu crio o container como eu envio para a equipe? tenho que criar uma imagem desse container e enviar pro dockerhub?

    • @willbalan1
      @willbalan1 4 года назад +1

      Poxa Bruno, muito obrigado! E que bom que você está gostando :)
      Exatamente, você precisa de uma imagem pra poder compartilhar com seu time.
      Agora você pode: enviar pro Dockerhub como você disse (o mais indicado); pode enviar a imagem para um Registry privado (um Dockerhub da sua empresa); pode também apenas deixar a imagem e cada um faz o build localmente (mas essa não é a ideal).

    • @brunol9262
      @brunol9262 4 года назад

      @@willbalan1 vlww mano, então, pode me tirar mais uma dúvida? Eu tenho 1 backend com spring e 1 frontend com angular, e eu preciso subir uma única imagem pro dockerhub que levanta a aplicação inteira, alguma dica de como fazer isso?

    • @fabiorabelo4679
      @fabiorabelo4679 3 года назад

      @@brunol9262 já deve ter resolvido, mas fica o registro: Docker-compose!

  • @dakotaassrogerioass
    @dakotaassrogerioass 4 года назад +1

    Olá, parabéns pela iniciativa, consegui rodar na minha máquina, mas gostaria de saber se tem como eu pegar a image criada no docker e se tiver onde fica salvo?

    • @willbalan1
      @willbalan1 4 года назад

      Olá! Muito obrigado :D
      Não entendi muito bem sua dúvida, você gostaria de compartilhar a imagem criada?

    • @pedromedeiros6907
      @pedromedeiros6907 3 года назад

      chama o comando docker image ls, irá mostrar todas as imagens que foram criadas.

  • @GabrielLopes-up3pk
    @GabrielLopes-up3pk 8 месяцев назад

    👏🏽👏🏽👏🏽

  • @joshbarros1995
    @joshbarros1995 3 года назад

    Eu tenho vontade de iniciar com SpringBoot, mas só de pensar em configurar novamente todo o ambiente, incluindo o Maven...
    Da uma dor de cabeça kkk, mas espero que o Docker reduza essa trabalheira para mim.

    • @pedromedeiros6907
      @pedromedeiros6907 3 года назад +2

      Maan, te mandar a real, utilizando o springboot você não vai precisar configurar nada, é tudo automático, basta ir no spring initializer e criar teu projeto, colocar na ide e acabou... simples assim.

  • @ninjagamerytb1107
    @ninjagamerytb1107 2 года назад

    cara tou super enteressado em aprender como faço pra entender tudo isso ?

  • @juceliodelmondes1755
    @juceliodelmondes1755 4 года назад

    Muito bom! Tenho uma dúvida, onde que você encontrou o nome desta imagem "openjdk" ? Se eu precisar por exemplo criar um container para uma aplicação em Csharp, (arquivo .exe com dll), como sei qual o nome da imagem que preciso utilizar? Obrigado

  • @fernandoandrade7854
    @fernandoandrade7854 2 года назад

    Como eu faço essa sequência para subir uma aplicação para o heroku, 1 criar imagem doc do projeto, 2 subir para o githugb , 3 usar o gitlab para gerar o pipeline , 4 subir a fila de container para o heroku. Ta certo essa sequência ou não precisar seguir ordem nenhuma ? Pois estou tendo dificuldade , subi uma aplicação para o heroku , mas agora fica quebrando pois o procfile por alguma motivo não esta certo , minha aplicação esta em maven e não sei o que fazer para arrumar isso.

  • @joaojunqueira4445
    @joaojunqueira4445 3 года назад

    top, so queria saber como fazer isso ai com uma applicacao com banco de dados

  • @mauropereira
    @mauropereira 2 года назад

    Eu consigo fazer isto no spring tool suite?

  • @VictorGabriel-uh8ne
    @VictorGabriel-uh8ne 2 года назад

    Alguém sabe como fechar conexão SSL do Intellij para o container docker? O meu da erro bem no finalzinho pois meu backend está em https

  • @jonataswf
    @jonataswf 2 года назад

    E se tivesse configurado um h2, como faz o docker file?

  • @eduardofarias1302
    @eduardofarias1302 2 месяца назад

    fiz tudo certinho de acordo com o video, mas na parte de rebuildar, a alteração não esta refeletindo

    • @algaworks
      @algaworks  2 месяца назад

      Fala mergulhador! Você diz rebuildar a imagem Docker?
      Se sim, tente fazer um build ignorando o cache.
      Faça o comando:
      docker build -t spring-app --no-cache .

  • @valter-extreme6410
    @valter-extreme6410 2 месяца назад

    Cara, já tenho um projeto spring feito aqui no meu eclipse e não tô conseguindo criar o dockerfile, na verdade não estou sabendo o que colocar nele, tendo em vista o projeto que possuo aqui, poderia me ajudar?

    • @algaworks
      @algaworks  2 месяца назад

      Fala mergulhador!
      Comumente o deve ser criado um arquivo com exatamente com o nome de Dockerfile (atenção ao D maiúsculo) na pasta raiz do projeto.

  • @voguh__
    @voguh__ 3 года назад

    Cara uma duvida que tenho e estou tendo dificuldade para achar uma resposta, consigo de alguma forma pegar a versão que defino no ".mvn/maven.config" e definir como uma variavel de ambiente? Pois o meu projeto tem o backend em java e um front em react, o front é feito deploy junto com o back no jar, sendo assim na mesma url colocando /api eu consigo usar o back, porem no meu projeto eu coloco a versão do package.json no meu projeto tipo pra mostrar pro usuário a versão do sistema, porem com essa integração que estou fazendo quero juntar a versão do back e front tudo baseado na maven.config, dai queria saber como pego essa versão

  • @brenobcsilva
    @brenobcsilva 3 года назад

    Cara isso ai é um toca disco vinil??

  • @eversonjunior8494
    @eversonjunior8494 Год назад

    Tentei, mas deu esse erro.
    Caused by: java.lang.Error: factory already defined

  • @Horuam_ps
    @Horuam_ps 3 года назад

    cade mano? o link do video dockerfile

  • @marciovelasco8106
    @marciovelasco8106 3 года назад

    Tenho duvidas: Consegui criar e rodar a imagem com uma aplicação espring, só que estou recebendo erro de comunicação com o banco MySQL, que esta rodando em outro container. Teria como fazer um vídeo, subindo uma aplicação e um banco em container diferentes????

    • @williamdosreiscacho8962
      @williamdosreiscacho8962 3 года назад

      Pesquisa sobre docker composer múltiplos comtaines configurado e um enxergando o outro

  • @Chrisz123-v3j
    @Chrisz123-v3j 2 года назад

    O meu esta dando o seguinte erro: no main manifest attribute. Ja criei uma pasta manisfest.mf e mesmo assim não funciona, alguem sabe como resolver?

  • @eduardospagna9698
    @eduardospagna9698 3 года назад +1

    Não consegui encontrar uma forma de fazer isso com o VsCode. Alguém tem a solução?

    • @eduardospagna9698
      @eduardospagna9698 3 года назад +4

      Consegui! Na realidade é uma configuração de debug do VSCode. A documentação do VSCode ajudou um pouco (code.visualstudio.com/docs/java/java-debugging), mas basicamente deve- se criar o arquivo ".vscode/launch.json" e colar o código {"type":"java","name":"Launch Remote","request":"launch","mainClass":"org.springframework.boot.devtools.RemoteSpringApplication","projectName":"NOME_PROJETO","args":"localhost:8080"}

    • @gabriellopes1470
      @gabriellopes1470 3 года назад

      @@eduardospagna9698 Obrigado por compartilhar =D.
      Edit: Precisei instalar as extensões do Java no Visual Studio e adicionar a rota "/.~~spring-boot!~/restart" no meu securityConfig pois estava retornando um erro 401

  • @RogerioSilva-xs6ik
    @RogerioSilva-xs6ik 4 года назад

    Olá, poderia me dizer como faco pra trocar a porta caso o build do projeto fosse .war? pois coloquei no properties server.port 8082 e quando vou subir no docker por essa porta ele não funciona, sempre sobe na 8080, provavelmente tem haver com o tomcat, mas não encontrei a solucao. Agradeco desde já!

    • @RogerioSilva-xs6ik
      @RogerioSilva-xs6ik 4 года назад

      Consegui resolver, faltava eu dizer no comando run o a porta 8082 para funcionar, vlw!

    • @andersonsmont
      @andersonsmont 2 года назад

      Não sei se vai ver essa mensagem mas como vc fez com o War? Tou tendo problema com o container que fiz do tomcast

  • @viniciusgiacomelli452
    @viniciusgiacomelli452 2 года назад

    Quem mais foi checar o Aplicativo do Watsapp aos 3:55 de vídeo? kkkkkkk

  • @adoniasalcantara522
    @adoniasalcantara522 4 года назад +2

    Oshe, aquilo ali é uma vitrola? Kkkkkkk

    • @willbalan1
      @willbalan1 4 года назад +1

      Hahahahaha é sim, Adonias!
      Não tão oldschool mas é pra essa finalidade :D

  • @kelvinbrito2885
    @kelvinbrito2885 2 года назад

    Importante saber que se estiver usando o Spring Security na aplicação isso não funciona!!

  • @ederborborema5852
    @ederborborema5852 4 года назад +1

    Não fala que linguagem está usando! A gente tem que adivinhar?

  • @ewertonsdias
    @ewertonsdias 3 года назад

    Kkkkkkk falar mergulhador é muito zuado pqp kkkkkkkkkk

  • @bartoalheiros3616
    @bartoalheiros3616 Год назад

    Fiz tudo como você disse, porém quando vou rebuildar o projeto do Spring-remote, pras atualizações refletirem no conteiner, ele dá o seguinte erro no conteiner:
    java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.StandardRoot@49c95225]
    at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[na:na]
    at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) ~[na:na]
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:873) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:846) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1328) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1318) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) ~[na:na]
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:241) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:428) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:918) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.startup.Tomcat.start(Tomcat.java:485) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:123) ~[spring-boot-3.1.3.jar!/:3.1.3]
    at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.(TomcatWebServer.java:104) ~[spring-boot-3.1.3.jar!/:3.1.3]
    at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:489) ~[spring-boot-3.1.3.jar!/:3.1.3]
    at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:211) ~[spring-boot-3.1.3.jar!/:3.1.3]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:183) ~[spring-boot-3.1.3.jar!/:3.1.3]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:161) ~[spring-boot-3.1.3.jar!/:3.1.3]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:602) ~[spring-context-6.0.11.jar!/:6.0.11]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.1.3.jar!/:3.1.3]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) ~[spring-boot-3.1.3.jar!/:3.1.3]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:436) ~[spring-boot-3.1.3.jar!/:3.1.3]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:312) ~[spring-boot-3.1.3.jar!/:3.1.3]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-3.1.3.jar!/:3.1.3]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) ~[spring-boot-3.1.3.jar!/:3.1.3]
    at com.example.javadocker.JavaDockerApplication.main(JavaDockerApplication.java:10) ~[classes!/:0.0.1-SNAPSHOT]
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[na:na]
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) ~[java-docker.jar:0.0.1-SNAPSHOT]
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:95) ~[java-docker.jar:0.0.1-SNAPSHOT]
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) ~[java-docker.jar:0.0.1-SNAPSHOT]
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65) ~[java-docker.jar:0.0.1-SNAPSHOT]
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[na:na]
    at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.1.3.jar!/:3.1.3]
    Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.StandardRoot@49c95225]
    at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:139) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:173) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4571) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4704) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1328) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1318) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) ~[na:na]
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866) ~[tomcat-embed-core-10.1.12.jar!/:na]
    ... 38 common frames omitted
    Caused by: java.lang.Error: factory already defined
    at java.base/java.net.URL.setURLStreamHandlerFactory(URL.java:1228) ~[na:na]
    at org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.(TomcatURLStreamHandlerFactory.java:121) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.getInstanceInternal(TomcatURLStreamHandlerFactory.java:52) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.register(TomcatURLStreamHandlerFactory.java:73) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.webresources.StandardRoot.registerURLStreamHandlerFactory(StandardRoot.java:699) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.webresources.StandardRoot.initInternal(StandardRoot.java:686) ~[tomcat-embed-core-10.1.12.jar!/:na]
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) ~[tomcat-embed-core-10.1.12.jar!/:na]
    ... 48 common frames omitted

    • @bartoalheiros3616
      @bartoalheiros3616 Год назад

      Resolvi esse erro, porém o Live Reload ainda não funciona. Fiz tudo como tem no vídeo.