How to setup a development environment for java in unix for each of the team member

Earlier I worked on Ruby on Rails.
We, all the developers used to pull the latest image from docker.
Once the docker is up and running, we were able to do development locally.
Once the code changes are done, we used to push to our respective git branch and once its merged, we used to deploy to production.
The app was hosted on Heroku.

(As you can see all the developers used to work on their own local copy. Postgress database configuration and dummy data was already set for local)

  • Getting list of running containers from a cluster
  • Oracle Instant Client - with Docker and PHP
  • How do I connect my iPhone to my local docker container if they're both on the same network?
  • Repair/Uninstall Mesos after cleanup
  • Where can I find the list of Docker format template variables?
  • Consul DNS not available on docker bridge IP
  • Now as a new startup, we are using java, spring, hibernate, quartz.

    We want to have similar architecture set up as I discussed in the beginning.

    I was looking for solution in google. Many authors and articles suggested to use jenkins and github but none of the articles mentioned a complete dev environment setup process sothat each developer can work independently.

    Main goal-

    1. Each developer must get his/her own local copy and work on it(Java)
    2. Pre configured database locally
    3. Dump dummy data
    4. Deployment process (what is the best hosting service for java app like heroku for rails)

    Ultimate Goal:-
    A new joinee comes runs a shell script and the entire development environment is set for him and he can start contributing to the project on the same day itself.

    Which database should be used with java considering it is a startup, database’s performance and cost and reliablity with Java?(Mysql or posstgresql or any other)

    Which OS should be used again considering it is a startup, database’s performance and cost and reliablity with Java?(Ubuntu or Windows, Current we are on Ubuntu)

    What is the best solution(step by step) for setting up entire independent dev environment for each developer while using java,spring,hibernate, quartz technologies?

  • Send mails from redmine container
  • Vagrant: Passing docker run arguments to multiple containers using vagrant
  • Will docker container auto sync time with the host machine?
  • Undefined http response from requests between containers with docker compose
  • the approach to restore a pre-configured docker image
  • How can I boot a swarm of 50 machines with docker-machine?
  • One Solution collect form web for “How to setup a development environment for java in unix for each of the team member”

    I’ll answer what we did in a previous startup I’ve worked at. Worked well for us, maybe there other better alternatives.

    • Postgres is a good db.
    • We used Centos for production so Fedora locally, so it will be the same linux family. Anyway I don’t see any reason to use Windows for development.
    • You can use hibernate to create the db schema and tables from your java pojo entities.
    • We had scripts which pre-populate certain tables with desired values. E.g. users table.
    • All scripts were integrated to run by executing maven commands.
    • We used scripts to create the dev env, with configuration of local apache httpd proxy and many other things. It can be quite complicated.
    • We used Artifactory to hold and cache the current and previous maven artifacts, both of our product and our maven dependencies.
    • As for Quartz, it shouldn’t be a problem. Notice that there is an integration of Spring with Quartz, use it.
    • We used local Gitlab as our repo.
    • We used local hosted Jenkins for our CI.
    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.