如何在Docker中開發Java 8 Spring Boot應用程序?

在本文中,我將向您展現如何使用Java 8開發和運行簡單的Spring Web應用程序,而無需在本地計算機上安裝Java 8。java

Python開發人員使用虛擬環境爲不一樣項目建立和管理單獨的環境,每一個環境使用不一樣版本的Python來執行,存儲和解析Python依賴項。Java和許多其餘技術不支持虛擬環境概念。在這一點上,Docker來幫助咱們。mysql

Docker是一個虛擬化平臺。您能夠從Docker官方網站上找到基本信息和安裝指南。spring

一旦安裝了Docker工具箱,就不須要安裝咱們的示例應用程序中所需的Java 8或MySQL。sql

首先,讓咱們檢查一下Docker-compose文件:docker

version : '2'
services:
  springappserver:
    build:
      context: . 
      dockerfile: springapp.dockerfile
    ports: 
      - "8080:8080"
    networks:
      - net-spring-db
    volumes:
      - .:/vol/development
    depends_on:
      - mysqldbserver
  mysqldbserver:
    build:
      context: . 
      dockerfile: mysqldb.dockerfile
    ports:
      - "3306:3306"
    networks:
      - net-spring-db
    environment:
      MYSQL_DATABASE: testdb
      MYSQL_USER: myuser
      MYSQL_PASSWORD: mypassword
      MYSQL_ROOT_PASSWORD: myrootpassword
    container_name: mysqldbserver
networks:
  net-spring-db:
    driver: bridge

咱們在'net-spring-db'上分別有兩臺服務器。第一個名爲'springappserver',並使用springapp.dockerfile配置。第二個命名爲mysqldbserver,並使用mysqldb.dockerfile進行配置。
如今,讓咱們看一下springapp.dockerfile:數據庫

#
# Java 1.8 & Maven Dockerfile
#
#
# pull base image.
FROM java:8
# maintainer
MAINTAINER Dursun KOC "dursunkoc@gmail.com"
# update packages and install maven
RUN  \
  export DEBIAN_FRONTEND=noninteractive && \
  sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && \
  apt-get update && \
  apt-get -y upgrade && \
  apt-get install -y vim wget curl maven
# attach volumes
VOLUME /vol/development
# create working directory
RUN mkdir -p /vol/development
WORKDIR /vol/development
# maven exec
CMD ["mvn", "clean", "package", "exec:java"]

Docker文件配置Docker鏡像,該鏡像繼承自Docker Hub的Java 8鏡像 。在Java 8鏡像上,我安裝了vim,wget,curl,Maven,並設置了卷以便放置我現有的項目代碼。最後,執行Maven命令來運行個人應用程序。
如今讓咱們檢查一下mysqldb.dockerfile:json

FROM mysql/mysql-server
MAINTAINER Dursun KOC <dursunkoc@gmail.com>
# Copy the database initialize script: 
# Contents of /docker-entrypoint-initdb.d are run on mysqld startup
ADD  mysql/ /docker-entrypoint-initdb.d/

Docker文件配置Docker鏡像,該鏡像繼承自Docker Hub的MySQL / mysql-server映像 。在MySQL映像上,我放置了個人db-schema建立腳本,它們位於MySQL文件夾中。我在這個文件夾中有一個SQL文件 - data.sql - 以建立'person'表。
如今,咱們看看應用程序結構。
咱們的應用程序是從src / com / turkcell / softlab / Application.java文件開始的,咱們惟一的Controller是PersonController(src / com / turkcell / softlab / controller / PersonController.java)。
您能夠使用簡單的命令運行整個項目:vim

docker-compose up -d

測試時,請在本地計算機中使用如下兩個命令:
• 建立新人:服務器

curl  -H  「Content-Type:application / json」  -X POST -d  「{\」first \「:\」Mustafa \「,\」last \「:\」KOÇ\「,\」dateofbirth \「:381110400000 ,「placeofbirth」:\「Erzincan \」}「  」http://192.168.99.100:8080/people「

• 列出數據庫中的現有人員:app

curl  -H  「Content-Type:application / json」  -X GET 「http://192.168.99.100:8080/people」
相關文章
相關標籤/搜索