<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">"use strict";(self.webpackChunkjhipster_website=self.webpackChunkjhipster_website||[]).push([[8765],{85976:(e,i,s)=&gt;{s.r(i),s.d(i,{assets:()=&gt;p,contentTitle:()=&gt;o,default:()=&gt;h,frontMatter:()=&gt;n,metadata:()=&gt;r,toc:()=&gt;a});const r=JSON.parse('{"id":"production/docker-hub","title":"Docker Hub","description":"Docker Hub","source":"@site/docs/production/docker-hub.mdx","sourceDirName":"production","slug":"/docker-hub/","permalink":"/docker-hub/","draft":false,"unlisted":false,"editUrl":"https://github.com/jhipster/jhipster.github.io/tree/main/docs/production/docker-hub.mdx","tags":[],"version":"current","lastUpdatedAt":1474761600000,"frontMatter":{"title":"Docker Hub","slug":"/docker-hub/","last_update":{"date":"2016-09-25T00:00:00.000Z"}},"sidebar":"docsSidebar","previous":{"title":"Monitoring","permalink":"/monitoring/"},"next":{"title":"Deploying to Azure","permalink":"/azure/"}}');var t=s(74848),l=s(28453);const n={title:"Docker Hub",slug:"/docker-hub/",last_update:{date:new Date("2016-09-25T00:00:00.000Z")}},o=void 0,p={},a=[{value:"jhipster/jhipster: an alternative installation of JHipster",id:"jhipsterjhipster-an-alternative-installation-of-jhipster",level:2},{value:"Use the latest release of JHipster",id:"use-the-latest-release-of-jhipster",level:3},{value:"Use JHipster v3.0.0",id:"use-jhipster-v300",level:3},{value:"jhipster/jdl-studio : JDL-Studio offline",id:"jhipsterjdl-studio--jdl-studio-offline",level:2},{value:"jhipster/jhipster-sample-app",id:"jhipsterjhipster-sample-app",level:2},{value:"Quick launch",id:"quick-launch",level:3},{value:"Development profile",id:"development-profile",level:3},{value:"Production profile",id:"production-profile",level:3},{value:"Production profile and monitoring with ELK stack",id:"production-profile-and-monitoring-with-elk-stack",level:3},{value:"jhipster/jhipster-sample-app-elasticsearch",id:"jhipsterjhipster-sample-app-elasticsearch",level:2},{value:"Development profile",id:"development-profile-1",level:3},{value:"Production profile",id:"production-profile-1",level:3},{value:"jhipster/jhipster-sample-app-mongodb",id:"jhipsterjhipster-sample-app-mongodb",level:2},{value:"Production profile",id:"production-profile-2",level:3},{value:"jhipster/jhipster-sample-app-cassandra",id:"jhipsterjhipster-sample-app-cassandra",level:2},{value:"Production profile",id:"production-profile-3",level:3},{value:"Microservices architecture",id:"microservices-architecture",level:2},{value:"Production profile",id:"production-profile-4",level:3},{value:"Production profile and monitoring with ELK stack",id:"production-profile-and-monitoring-with-elk-stack-1",level:3}];function c(e){const i={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",ul:"ul",...(0,l.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.p,{children:(0,t.jsx)(i.a,{href:"https://hub.docker.com/u/jhipster/",children:(0,t.jsx)(i.img,{alt:"Docker Hub",src:s(75338).A+"",width:"200",height:"200"})})}),"\n",(0,t.jsxs)(i.p,{children:["JHipster has its own ",(0,t.jsx)(i.a,{href:"https://hub.docker.com/u/jhipster/",children:"organization"})," at Docker Hub and provides different Docker images."]}),"\n",(0,t.jsxs)(i.p,{children:["The ",(0,t.jsx)(i.a,{href:"https://github.com/jhipster/jhipster-docker-hub",children:"jhipster-docker-hub"})," project provides all docker-compose files to launch these images.\nTo use the docker-compose commands, you have to:"]}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsxs)(i.li,{children:["clone the project: ",(0,t.jsx)(i.code,{children:"git clone https://github.com/jhipster/jhipster-docker-hub"})]}),"\n",(0,t.jsxs)(i.li,{children:["go inside project: ",(0,t.jsx)(i.code,{children:"cd jhipster-docker-hub"})]}),"\n"]}),"\n",(0,t.jsx)(i.admonition,{type:"warning",children:(0,t.jsxs)(i.p,{children:["Based on your OS, your ",(0,t.jsx)(i.code,{children:"DOCKER_HOST"})," will differ. On Linux, it will be ",(0,t.jsx)(i.code,{children:"localhost"}),".\nFor Mac/Windows, you will have to obtain the IP using following command: ",(0,t.jsx)(i.code,{children:"docker-machine ip default"})]})}),"\n",(0,t.jsxs)(i.h2,{id:"jhipsterjhipster-an-alternative-installation-of-jhipster",children:[(0,t.jsx)(i.a,{href:"https://hub.docker.com/r/jhipster/jhipster",children:"jhipster/jhipster"}),": an alternative installation of JHipster"]}),"\n",(0,t.jsxs)(i.p,{children:["See the ",(0,t.jsx)(i.a,{href:"/installation/",children:"installation"})," page for full instructions."]}),"\n",(0,t.jsx)(i.p,{children:"These following commands can be used in specific use cases."}),"\n",(0,t.jsx)(i.h3,{id:"use-the-latest-release-of-jhipster",children:"Use the latest release of JHipster"}),"\n",(0,t.jsxs)(i.p,{children:["Launch ",(0,t.jsx)(i.code,{children:"jhipster"})," in the current folder, with the latest release"]}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{className:"language-shell",children:'docker container run --rm -it -v "$PWD":/home/jhipster/app jhipster/jhipster jhipster\n'})}),"\n",(0,t.jsx)(i.h3,{id:"use-jhipster-v300",children:"Use JHipster v3.0.0"}),"\n",(0,t.jsxs)(i.p,{children:["Launch ",(0,t.jsx)(i.code,{children:"jhipster"})," in the current folder, with an older release:"]}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{className:"language-shell",children:'docker container run --rm -it -v "$PWD":/home/jhipster/app jhipster/jhipster:v3.0.0 jhipster\n'})}),"\n",(0,t.jsxs)(i.p,{children:["You can see ",(0,t.jsx)(i.a,{href:"https://hub.docker.com/r/jhipster/jhipster/tags/",children:"all available tags"})]}),"\n",(0,t.jsxs)(i.h2,{id:"jhipsterjdl-studio--jdl-studio-offline",children:[(0,t.jsx)(i.a,{href:"https://hub.docker.com/r/jhipster/jdl-studio",children:"jhipster/jdl-studio"})," : JDL-Studio offline"]}),"\n",(0,t.jsxs)(i.p,{children:["You can use JDL-Studio offline and access to it at ",(0,t.jsx)(i.a,{href:"http://localhost:18080",children:"http://localhost:18080"})]}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{className:"language-shell",children:"docker container run -d -p 18080:80 jhipster/jdl-studio\n"})}),"\n",(0,t.jsx)(i.h2,{id:"jhipsterjhipster-sample-app",children:(0,t.jsx)(i.a,{href:"https://hub.docker.com/r/jhipster/jhipster-sample-app",children:"jhipster/jhipster-sample-app"})}),"\n",(0,t.jsx)(i.p,{children:"It is a sample application with H2 or MySQL."}),"\n",(0,t.jsx)(i.h3,{id:"quick-launch",children:"Quick launch"}),"\n",(0,t.jsx)(i.p,{children:"Run a jhipster application directly with Docker, in development profile"}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{className:"language-shell",children:"docker container run -d -p 8080:8080 -e SPRING_PROFILES_ACTIVE=dev jhipster/jhipster-sample-app\n"})}),"\n",(0,t.jsxs)(i.p,{children:["Then, you can access to the application at ",(0,t.jsx)(i.a,{href:"http://localhost:8080",children:"http://localhost:8080"})]}),"\n",(0,t.jsx)(i.h3,{id:"development-profile",children:"Development profile"}),"\n",(0,t.jsx)(i.p,{children:"Run the application in development profile"}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{className:"language-shell",children:"docker-compose -f jhipster-sample-app/dev.yml up\n"})}),"\n",(0,t.jsx)(i.h3,{id:"production-profile",children:"Production profile"}),"\n",(0,t.jsx)(i.p,{children:"Run the application in production profile, with MySQL database"}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{className:"language-shell",children:"docker-compose -f jhipster-sample-app/prod.yml up\n"})}),"\n",(0,t.jsx)(i.h3,{id:"production-profile-and-monitoring-with-elk-stack",children:"Production profile and monitoring with ELK stack"}),"\n",(0,t.jsx)(i.p,{children:"Run the application in production profile, with MySQL database and ELK stack"}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{className:"language-shell",children:"docker-compose -f jhipster-sample-app/prod-elk.yml up\n"})}),"\n",(0,t.jsxs)(i.p,{children:["Access to the running application at ",(0,t.jsx)(i.a,{href:"http://localhost:8080",children:"http://localhost:8080"})]}),"\n",(0,t.jsxs)(i.p,{children:["Access to the Kibana dashboard at ",(0,t.jsx)(i.a,{href:"http://localhost:5601",children:"http://localhost:5601"})]}),"\n",(0,t.jsx)(i.h2,{id:"jhipsterjhipster-sample-app-elasticsearch",children:(0,t.jsx)(i.a,{href:"https://hub.docker.com/r/jhipster/jhipster-sample-app-elasticsearch",children:"jhipster/jhipster-sample-app-elasticsearch"})}),"\n",(0,t.jsx)(i.p,{children:"It is a sample application with MySQL and Elasticsearch."}),"\n",(0,t.jsx)(i.h3,{id:"development-profile-1",children:"Development profile"}),"\n",(0,t.jsx)(i.p,{children:"Run the application in development profile"}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{className:"language-shell",children:"docker-compose -f jhipster-sample-app-elasticsearch/dev.yml up\n"})}),"\n",(0,t.jsx)(i.h3,{id:"production-profile-1",children:"Production profile"}),"\n",(0,t.jsx)(i.p,{children:"Run the application in production profile, with MySQL database and Elasticsearch"}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{className:"language-shell",children:"docker-compose -f jhipster-sample-app-elasticsearch/prod.yml up\n"})}),"\n",(0,t.jsx)(i.h2,{id:"jhipsterjhipster-sample-app-mongodb",children:(0,t.jsx)(i.a,{href:"https://hub.docker.com/r/jhipster/jhipster-sample-app-mongodb",children:"jhipster/jhipster-sample-app-mongodb"})}),"\n",(0,t.jsx)(i.p,{children:"It is a sample application with MongoDB."}),"\n",(0,t.jsx)(i.h3,{id:"production-profile-2",children:"Production profile"}),"\n",(0,t.jsx)(i.p,{children:"Run the application in production profile, with MongoDB database"}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{className:"language-shell",children:"docker-compose -f jhipster-sample-app-mongodb/prod.yml up\n"})}),"\n",(0,t.jsx)(i.h2,{id:"jhipsterjhipster-sample-app-cassandra",children:(0,t.jsx)(i.a,{href:"https://hub.docker.com/r/jhipster/jhipster-sample-app-cassandra",children:"jhipster/jhipster-sample-app-cassandra"})}),"\n",(0,t.jsx)(i.p,{children:"It is a sample application with a Cassandra cluster."}),"\n",(0,t.jsx)(i.h3,{id:"production-profile-3",children:"Production profile"}),"\n",(0,t.jsx)(i.p,{children:"Run the application in production profile, with Cassandra cluster"}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{className:"language-shell",children:"docker-compose -f jhipster-sample-app-cassandra/prod.yml up\n"})}),"\n",(0,t.jsx)(i.p,{children:"Scale a Cassandra node"}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{className:"language-shell",children:"docker-compose -f jhipster-sample-app-cassandra/prod.yml scale sample-cassandra-node=2\n"})}),"\n",(0,t.jsx)(i.h2,{id:"microservices-architecture",children:"Microservices architecture"}),"\n",(0,t.jsx)(i.p,{children:"The images used here are:"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://hub.docker.com/r/jhipster/jhipster-registry",children:"jhipster/jhipster-registry"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://hub.docker.com/r/jhipster/jhipster-sample-app-gateway",children:"jhipster/jhipster-sample-app-gateway"})}),"\n",(0,t.jsx)(i.li,{children:(0,t.jsx)(i.a,{href:"https://hub.docker.com/r/jhipster/jhipster-sample-app-microservice",children:"jhipster/jhipster-sample-app-microservice"})}),"\n"]}),"\n",(0,t.jsx)(i.h3,{id:"production-profile-4",children:"Production profile"}),"\n",(0,t.jsx)(i.p,{children:"Run the full stack in production profile"}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{className:"language-shell",children:"docker-compose -f jhipster-sample-microservices/prod/prod.yml up\n"})}),"\n",(0,t.jsx)(i.p,{children:"It will start:"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Consul or the JHipster Registry"}),"\n",(0,t.jsx)(i.li,{children:"the gateway"}),"\n",(0,t.jsx)(i.li,{children:"a MySQL database"}),"\n",(0,t.jsx)(i.li,{children:"the microservice"}),"\n",(0,t.jsx)(i.li,{children:"a PostgreSQL database"}),"\n"]}),"\n",(0,t.jsx)(i.p,{children:"Scale the microservice"}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{className:"language-shell",children:"docker-compose -f jhipster-sample-microservices/prod/prod.yml scale jhipstersamplemicroservice-app=2\n"})}),"\n",(0,t.jsx)(i.h3,{id:"production-profile-and-monitoring-with-elk-stack-1",children:"Production profile and monitoring with ELK stack"}),"\n",(0,t.jsx)(i.p,{children:"Run the full stack in production profile, with ELK stack"}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{className:"language-shell",children:"docker-compose -f jhipster-sample-microservices/prod-elk/prod-elk.yml up\n"})}),"\n",(0,t.jsx)(i.p,{children:"Scale the microservice"}),"\n",(0,t.jsx)(i.pre,{children:(0,t.jsx)(i.code,{className:"language-shell",children:"docker-compose -f jhipster-sample-microservices/prod-elk/prod-elk.yml scale jhipstersamplemicroservice-app=2\n"})}),"\n",(0,t.jsxs)(i.p,{children:["Access to the registry at: ",(0,t.jsx)(i.a,{href:"http://localhost:8761",children:"http://localhost:8761"})]}),"\n",(0,t.jsxs)(i.p,{children:["Access to the gateway at: ",(0,t.jsx)(i.a,{href:"http://localhost:8080",children:"http://localhost:8080"})]}),"\n",(0,t.jsxs)(i.p,{children:["Access to the Kibana dashboard at: ",(0,t.jsx)(i.a,{href:"http://localhost:5601",children:"http://localhost:5601"})]})]})}function h(e={}){const{wrapper:i}={...(0,l.R)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},75338:(e,i,s)=&gt;{s.d(i,{A:()=&gt;r});const r="data:image/png;base64,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"},28453:(e,i,s)=&gt;{s.d(i,{R:()=&gt;n,x:()=&gt;o});var r=s(96540);const t={},l=r.createContext(t);function n(e){const i=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function o(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:n(e.components),r.createElement(l.Provider,{value:i},e.children)}}}]);</pre></body></html>