1. 程式人生 > 其它 >Docker部署Java

Docker部署Java

1. 官方映象

1.1 映象地址

https://hub.docker.com/_/openjdk

1.2 SimSun.ttf

https://github.com/StellarCN/scp_zh/tree/master/fonts

2. 建立映象

2.1 Dockerfile

基礎映象必須是alpine版本,該版本可執行apk命令

# 第一行必須指令基於的基礎映象
FROM openjdk:8-jre-alpine
# 設定字型庫
COPY ./SimSun.ttf /usr/share/fonts/SimSun.ttf
# 安裝字型軟體
RUN apk add --update ttf-dejavu fontconfig && rm -rf /var/cache/apk/*
# 設定時區
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
# 維護者資訊
MAINTAINER wufs
ENTRYPOINT ["java", "-Xmx512m", "-jar", "/app/my-app.jar", "--spring.profiles.active=dev", "--spring.cloud.bootstrap.location=/app/bootstrap.yml"]
# 容器暴露的埠號
# my-app
EXPOSE 8080
# Debug除錯埠
EXPOSE 5005

3. docker-compose方式安裝

3.1 docker-compose.yml

version: '3'
services:
  myapp-service:
    build:
      context: ./
      dockerfile: Dockerfile
    image: my-app:1.0
    container_name: myapp
    restart: always
    network_mode: 'host'
    volumes:
      - /etc/localtime:/etc/localtime
      - /u01/app:/app
      - /u01/logs:/u01/logs
    entrypoint:
      - java
      - -Xmx512m
      - -jar
      # 開啟遠端debug埠
      - -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
      - /app/my-app.jar
      - --spring.profiles.active=dev
      - --spring.cloud.bootstrap.location=/app/bootstrap.yml

4. 建立容器

docker-compose up -d myapp-service
# 以root使用者許可權進入容器
docker exec -it -u root myapp bash
# 檢視容器啟動日誌
docker logs -f myapp