Featured post

Docker setup for Liferay 7 with MySQL

Friday, 24 March 2017

Docker setup for Liferay 7 with MySQL

Docker is among the most famous DevOps tool these days which eliminates “works on my machine”  problem.

Prerequisite:

Docker, Yes, you do not need any developer setup other than Docker!

About: 

Use docker and distribute the same image to your team and start the development. No setup is required like configure liferay,sql, etc.

There are multiple ways to use docker, but easiest is to use yml and docker-compose.
I am using Manuel de la Peña's docker files to make it work.

Download repository from git - https://github.com/mdelapenya/docker-liferay-portal/tree/7-ce-ga3-tomcat-MySQL (If you are using windows, keep your folder in User directory)

Structure:

Folder structure with slight change  is -
Portal ext is placed inside configs and will be copied to your docker file system, you can make require changes in this file.

I have made few changes in docker-compose.yml to add sql port and mount deploy folder.
Do not use tab while changing yml files,use space instead.

version: '2'
services:
  portal:
    build: .
    ports:
     - "8080:8080"
     - "11311:11311"
    volumes:
    - "./data/deploy:/usr/local/liferay-ce-portal-7.0-ga3/deploy"
    depends_on:
     - mysql
  mysql:
    image: mdelapenya/mysql-utf8
    ports:
     - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=my-secret-pw
      - MYSQL_DATABASE=lportal
      - character-set-server=utf8mb4
      - collation-server=utf8mb4_unicode_ci


To start the server all you need to do is use docker terminal or normal command window and move to corresponding directory and run command - "docker-compose up". 





This command will download images from docker hub and create a new image from your local Dockerfile and start your liferay server on 8080 port with MySQL on 3306.

Use docker-machine ip to fetch machine address and then you can hit your portal e.g. 192.168.99.100:8080

While doing docker-compose up if you see this error for memory





Then go to Virtual Box > Settings > System and increase memory and CPU accordingly.You can perform the same thing with config.json of your docker machine.










You need to set port forwarding in Oracle Virtual Box. It is shipped with Docker ToolBox as well.
Oracle Virtual Box > Settings > Network > Advance Port Forwarding.(If you do not want to access it from localhost then leave it)









Now we will go one by one to understand content of the file


  1. version : We are using version 2 of yml.
  2. services: Which services needs to be started. Right now there are two one is portal and other is MySQL.
  3. build: Inside portal we are using build [.] which indicates we are using current directory to build docker image from Dockerfile. In normal case we use image same as MySQL section.
  4. ports: What ports must be exposed to host environment, right now we are accessing portal from 8080, we can change it to 8090:8080 like this.
  5. volumes: We will use this section to deploy war or jar in docker. Just copy your file inside your local folder which you mounted to docker's deploy folder.
  6. depends_on: On which services your service rely, like MySQL.
  7. image: docker URL to fetch image.

To see your volume, port settings and environment, you can use docker inpsect [CONTAINER_ID].

Use "docker ps" to see running containers


Take initial string of container id and run "docker inpsect [CONTAINER_ID]"
e.g. docker inspect b32

Output of this command contains multiple sections - 


Environment Variables like LIFERAY_HOME or JAVA_HOME


Ports / Network Settings


Mounts - In our case we created a folder data/deploy which is mounted to volume liferay/deploy folder.





Some useful commands:

docker-compose up -d: To create image and start docker container in background
docker-compose down: To stop
docker-compose start: To start container from previously created images
docker-compose stop: To stop container and persist the state.
docker images: To list all available images
docker exec -it [CONTAINER_ID] bash: To access file system like putty
docker logs -f  [CONTAINER_ID]: To check logs

Note: You can use unique initial string for CONTAINER_ID e.g. If container id is "234sdfs234" you can use "234".



You are just done, Try & Enjoy the function.............:)

53 comments:

  1. Thanks for this blog. Provided great information. All the details are explained clearly with the great explanation.
    Devops Training in Bangalore
    CCNA Training in Bangalore

    ReplyDelete
    Replies
    1. Hi, Great.. Tutorial is just awesome..It is really helpful for a newbie like me.. I am a regular follower of your blog. Really very informative post you shared here. Kindly keep blogging. If anyone wants to become a Java developer learn from Java Training in Chennai. or learn thru Java Online Training in India . Nowadays Java has tons of job opportunities on various vertical industry.

      Delete
  2. Thanks for your marvelous posting! It is very useful and good. Come on. I want to introduce the best aso services for you, I try it and I feel it is so good to rank app to top in app store search results, have you ever heard it?

    ReplyDelete
  3. I read your Blog Your explanation is really good just check it once once Devops Online Training Hyderabad to Know more.

    ReplyDelete
  4. Appreciation for really being thoughtful and also for deciding on certain marvelous guides most people really want to be aware of. Best AWS Training in Bangalore

    ReplyDelete
  5. This comment has been removed by the author.

    ReplyDelete
  6. Very Good and Useful Information about docker-setup-for-liferay-with-mysql Thanks For Sharing Nice Article anyone want to learn advance devops tools training or devops Online training DevOps Online Training

    ReplyDelete
  7. Great Post! Thank you such a great amount for sharing. Keep in blogging. CA Firms
    Chartered Accountant
    Vendor Reconciliation

    ReplyDelete
  8. Thanks for one marvelous posting! I enjoyed reading it; you are a great author.Keep in blogging. Duplicate Payment Audit
    Duplicate Invoice Audit
    AP Vendor Helpdesk

    ReplyDelete
  9. thanks for providing useful information for us, i really liked it. Keep sharing!!
    DevOps Online Training

    ReplyDelete
  10. Useful Information, your blog is sharing unique information....
    Thanks for sharing!....

    java training in chennai

    ReplyDelete
  11. Really nice experience you have. Thank you for sharing. It will surely be an experience to someone.

    DevOps Online Training

    DevOps Training in Pune

    ReplyDelete
  12. This is an awesome post.Really very informative and creative contents.
    Wordpress Development company in Chennai

    ReplyDelete
  13. Hi, thank you very much for new information , i learned something new. Very well written. It was so good to read and usefull to improve knowledge. Keep posting. If you are looking for any python related information please visit our website
    python training in bangalore

    ReplyDelete
  14. Thanks for sharing useful information. I learned something new from your bog. Its very interesting and informative. keep updating. If you are looking for any Data science related information, please visit our website Data Science training in bangalore

    ReplyDelete
  15. Businesses that use IT investments to keep up their businesses have started to produce a turn towards cloud computing. Online Docker Training

    ReplyDelete
  16. Online online classes and programs is a rather new development. These article explains how a online private equity exercise program works and provide readers a look at the normal private equity program from sign-up towards exam. Online Docker Training

    ReplyDelete
  17. Attend The Machine Learning courses in Bangalore From ExcelR. Practical Machine Learning courses in Bangalore Sessions With Assured Placement Support From Experienced Faculty. ExcelR Offers The Machine Learning courses in Bangalore.
    Machine Learning courses in Bangalore

    ReplyDelete
  18. Attend The Artificial Intelligence course From ExcelR. Practical Artificial Intelligence course Sessions With Assured Placement Support From Experienced Faculty. ExcelR Offers The Artificial Intelligence course.
    Artificial Intelligence Course

    ReplyDelete
  19. Your blog have nice information, I got good idea from this amazing blog.
    I am always searching like this type blog post. I hope I will see again… devops training in chennai | devops training in anna nagar | devops training in omr | devops training in porur | devops training in tambaram | devops training in velachery

    ReplyDelete
  20. I personally think your article is fascinating, interesting and amazing. I share some of your same beliefs on this topic. I like your writing style and will revisit your site.
    Best Data Science training in Mumbai

    Data Science training in Mumbai

    ReplyDelete
  21. The development of artificial intelligence (AI) has propelled more programming architects, information scientists, and different experts to investigate the plausibility of a vocation in machine learning. Notwithstanding, a few newcomers will in general spotlight a lot on hypothesis and insufficient on commonsense application. machine learning projects for final year In case you will succeed, you have to begin building machine learning projects in the near future.

    Projects assist you with improving your applied ML skills rapidly while allowing you to investigate an intriguing point. Furthermore, you can include projects into your portfolio, making it simpler to get a vocation, discover cool profession openings, and Final Year Project Centers in Chennai even arrange a more significant compensation.


    Data analytics is the study of dissecting crude data so as to make decisions about that data. Data analytics advances and procedures are generally utilized in business ventures to empower associations to settle on progressively Python Training in Chennai educated business choices. In the present worldwide commercial center, it isn't sufficient to assemble data and do the math; you should realize how to apply that data to genuine situations such that will affect conduct. In the program you will initially gain proficiency with the specialized skills, including R and Python dialects most usually utilized in data analytics programming and usage; Python Training in Chennai at that point center around the commonsense application, in view of genuine business issues in a scope of industry segments, for example, wellbeing, promoting and account.

    ReplyDelete
  22. Thanks for sharing an informative blog keep rocking bring more details.I like the helpful info you provide in your articles. I’ll bookmark your weblog and check again here regularly. I am quite sure I will learn much new stuff right here! Good luck for the next! keep itup
    PHP Training in Chennai | Certification | Online Training Course | Machine Learning Training in Chennai | Certification | Online Training Course | iOT Training in Chennai | Certification | Online Training Course | Blockchain Training in Chennai | Certification | Online Training Course | Open Stack Training in Chennai |
    Certification | Online Training Course

    ReplyDelete
  23. The fame comes from the way that the databases are anything but difficult to make and access. Change Site URL Using MySQL

    ReplyDelete
  24. Excellent Blog! I would like to thank for the efforts you have made in writing this post. I am hoping the same best work from you in the future as well. I wanted to thank you for this websites! Thanks for sharing. Great websites!
    Artificial Intelligence Training in Chennai

    Ai Training in Chennai

    Artificial Intelligence training in Bangalore

    Ai Training in Bangalore

    Artificial Intelligence Training in Hyderabad | Certification | ai training in hyderabad

    Artificial Intelligence Online Training

    Ai Online Training

    Blue Prism Training in Chennai


    ReplyDelete
  25. Thanks for sharing an informative blog keep rocking bring more details.I like the helpful info you provide in your articles. I’ll bookmark your weblog and check again here regularly. I am quite sure I will learn much new stuff right here! Good luck for the next!
    Artificial Intelligence Training in Chennai

    Ai Training in Chennai

    Artificial Intelligence training in Bangalore

    Ai Training in Bangalore

    Artificial Intelligence Training in Hyderabad | Certification | ai training in hyderabad

    Artificial Intelligence Online Training

    Ai Online Training

    Blue Prism Training in Chennai


    ReplyDelete
  26. I have gone through your blog, it was very much useful for me and because of your blog, and also I gained much unknown information, the way you have clearly explained is really fantastic. Kindly post more like this, Thank You.

    selenium training in chennai

    selenium training in chennai

    selenium online training in chennai

    selenium training in bangalore

    selenium training in hyderabad

    selenium training in coimbatore

    selenium online training

    ReplyDelete
  27. Good Post! Thank you so much for sharing this pretty post, it was so good to read..keep posting.
    Data Science training institute in Hyderabad

    Data Science training in Hyderabad

    ReplyDelete
  28. Excellent Blog! I would like to thank for the efforts you have made in writing this post. I am hoping the same best work from you in the future as well.

    AWS training in Chennai

    AWS Online Training in Chennai

    AWS training in Bangalore

    AWS training in Hyderabad

    AWS training in Coimbatore

    AWS training

    ReplyDelete
  29. Nice blog. thanks for sharing valuable information. oracle training in chennai

    ReplyDelete

  30. Great post!I am actually getting ready to across this information,i am very happy to this commands.Also great blog here with all of the valuable information you have.Well done,its a great knowledge


    Azure Training in Chennai

    Azure Training in Bangalore

    Azure Training in Hyderabad

    Azure Training in Pune

    Azure Training | microsoft azure certification | Azure Online Training Course

    Azure Online Training


    ReplyDelete

  31. very nice blogs!!! i have to learning for lot of information for this sites...Sharing for wonderful information.Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing.


    Azure Training in Chennai

    Azure Training in Bangalore

    Azure Training in Hyderabad

    Azure Training in Pune

    Azure Training | microsoft azure certification | Azure Online Training Course

    Azure Online Training

    ReplyDelete