docker-compose 部署Java项目

本文详细介绍了如何利用docker-compose来部署Java应用程序。首先,创建了docker-compose.yml文件,配置了服务、环境变量、端口映射等。接着,制作Dockerfile,将Java应用打包进容器,并设置时区。最后,通过docker-compose命令启动和关闭服务,实现便捷的Java项目部署。

docker-compose 部署Java项目

1、创建docker-compose.yml文件和sysgis文件夹
version: '3.1'
services:
  system-gis-api:
    build:
      context: ./sysgis
      dockerfile: Dockerfile
    restart: always
    container_name: system-gis-api
    volumes:
      - /etc/localtime:/etc/localtime:ro
    environment:
      - SPRING_DATASOURCE_URL=jdbc:postgres_jts://localhost:5432/sysgis?characterEncoding=utf8&TimeZone=Asia/Shanghai
      - SPRING_DATASOURCE_USERNAME=postgres
      - SPRING_DATASOURCE_PASSWORD=password
      - USER_FILEPATH=/upload
     ports:
       - 9527:9527
    logging:
      options:
        max-size: 10mb
2、创建Dockerfile,把*.jar和Dockerfile放入sysgis文件夹
FROM java:8
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone
ADD *.jar content.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/content.jar"]
3、使用docker-compose
# 启动
sudo docker-compose up -d
# 关闭
sudo docker-compose down 
使用 `docker-compose` 部署 Java 应用程序通常涉及以下几个核心步骤:构建镜像、编写 `docker-compose.yml` 文件以及启动服务。以下是一个完整的部署流程,结合了多个引用内容中的配置建议。 ### ### 准备工作 1. **确保已安装 DockerDocker Compose** - 安装 Docker:请参考官方文档进行安装。 - 安装 Docker Compose: ```bash sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose ``` 然后赋予执行权限: ```bash sudo chmod +x /usr/local/bin/docker-compose ``` 验证安装是否成功: ```bash docker-compose --version ``` 2. **准备 Java 应用的 Docker 镜像** 如果你已经通过 `docker-maven-plugin` 插件在本地构建好了镜像,可以直接使用它。否则,可以创建一个简单的 `Dockerfile` 来构建镜像: ```dockerfile FROM openjdk:8-jdk-alpine COPY your-application.jar app.jar ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"] ``` 构建镜像: ```bash docker build -t your-java-app . ``` ### ### 编写 docker-compose.yml 文件 在项目根目录下创建 `docker-compose.yml` 文件,定义服务、网络、卷等资源。以下是一个典型的 Java 应用配置示例: ```yaml version: '3' services: java-app: image: your-java-app container_name: java-app-container ports: - "8080:8080" environment: - SPRING_PROFILES_ACTIVE=prod volumes: - ./logs:/var/log/java-app command: [ "java", "-Djava.security.egd=file:/dev/./urandom", "-Dfile.encoding=UTF-8", "-Duser.timezone=GMT+08", "-XX:+UseContainerSupport", "-XX:MaxRAMPercentage=50", "-XX:+UseG1GC", "-XX:MaxGCPauseMillis=100", "-XX:ParallelGCThreads=8", "-XX:ConcGCThreads=4", "-XX:+TieredCompilation", "-XX:+UseStringDeduplication", "-XX:+OptimizeStringConcat", "-XX:+HeapDumpOnOutOfMemoryError", "-XX:HeapDumpPath=/opt/xxxxxx/heapdump", "-jar", "/app.jar" ] ``` ### ### 启动服务 运行以下命令启动容器: ```bash docker-compose up -d ``` 查看容器状态: ```bash docker-compose ps ``` 如果需要日志信息,可以使用: ```bash docker-compose logs -f ``` ### ### 停止和清理 停止服务: ```bash docker-compose down ``` 如果你想删除所有相关的容器和网络: ```bash docker-compose down -v ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值