1添加並修改配置文件 在應用根目錄裏添加 config 目錄,而後複製Tomcat的 Server.xml 配置文件到該目錄。而後根據本身的需求修改該配置文件。
--java
2 由於本人習慣於將應用部署到Tomcat根目錄,因此須要修改Tomcat配置文件。而Docker容器裏直接修改配置文件不是很方便,因此新建一個配置文件用於替換容器裏的配置文件。如使用默認配置文件便可跳過這步。
#拉取 tomcat 鏡像 FROM tomcat:8 #刪除tomcat訪問主頁 RUN rm -rf /usr/local/tomcat/webapps/* #war包放入tomcat ADD /target/agent-app.war /usr/local/tomcat/webapps/ROOT.war #修改tomcat訪問端口 , 端口爲'8888' ADD server.xml /usr/local/tomcat/conf/server.xml #運行tomcat CMD ["catalina.sh","run"]
Dockerfile-jar包方式mysql
FROM java:8 EXPOSE 7800 VOLUME /tmp ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone ADD goods-cloud-youzan.jar /app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Xmx1024m","-jar","/app.jar"]
在應用根目錄下添加 .dockerignore 文件。該文件與 .gitignore 相似,用於避免將某些文件添加到建立Docker鏡像時的上下文。在其中添加除了 config 目錄以外的其餘目錄及文件:git
src/ .idea/ target/
能夠將 config 目錄及 Dockerfile 添加到另外一個目錄中來避免 .dockerignore 文件
編寫 docker-compose.yml 文件
由於本身的項目用到了Mysql和Redis,須要運行多個服務容器。因此用了Docker Compose 來管理這些服務。web
version: "2.3" services: mysql: image: mysql expose: - "3306" # Mysql 服務端口 environment: - MYSQL_ROOT_PASSWORD=123456 # Mysql root 用戶密碼 redis: image: redis:alpine expose: - "6379" forus: build: . links: - mysql - redis environment: - spring.profiles.active=test # 激活 Spring 的 Profile - JPDA_ADDRESS=0.0.0.0:8000 # 遠程調試地址 volumes: - ./target/forus/:/usr/local/tomcat/webapps/forus/ expose: - "8080" ports: - "8080:8080" # 應用端口映射 - "8000:8000" # 遠程調試端口映射
運行/調試
運行redis
1. 在應用根目錄下運行 `mvn war:exploded` 命令編譯項目。 2. 運行 `docker-compose up` 命令構建鏡像並運行相應服務。 3. 在瀏覽器中打開 `localhost:8080` 便可訪問該應用。 4. 在應用根目錄下運行 `docker-compose down` 命令可中止相應服務並刪除相關容器和鏡像。
調試spring
經過遠程調試的方式鏈接到 `localhost:8000' 可進行調試。