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)

  • Is there any official Docker images for Hadoop?
  • Docker container can't be reached from another PC
  • Docker compose mysql connection failing
  • Nesting variables in Apache config
  • Adding permissions to host directory with docker-compose
  • Docker nginx redirect HTTP to HTTPS
  • 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?

  • Why shouldn't I run multiple processes in a Docker container?
  • Docker container for Laravel: PHP 7.x on CentOS 7.x
  • using ansible for provisioning docker containers
  • Can I run custom .sh files while building docker image?
  • Docker client certificate issue
  • How to set the “current” directory of a Dockerfile with Docker Compose?
  • 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.