在本文中,我將向您展現如何使用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」