GithubHelp home page GithubHelp logo

compose's Introduction

背景

为了标准化流程与简易化部署,本项目构建一套简易的 JAVA 的开发/运行环境,最终达到 build,ship,run!

依赖

运维命令:

$ docker-compose help   # docker-compose 命令帮助
$ docker-compose up     # 创建并启动 docker 编排服务
$ docker-compose down   # 停止并移除 docker 编排服务 (更改配置文件时建议使用)
$ docker-compose exec javaweb-compose bash # ssh 登入 java 容器

数据库信息

  • hostname: mysql

此处的数据库连接地址 hostname 值为 mysql ,容器中会在自己的 /etc/hosts 中添加一条 1xx.xx.xx.xx mysql 的 host,这会将 http://mysql 这个地址指向 mysql 容器的实际内网地址,等效于常见的 http://localhost

数据持久化

容器内的数据会随着容器的销毁而丢失,所以需要配置 docker-compose.yml 文件将以下目录同步到你的物理机目录进行持久化:

  • /var/lib/mysql MySQL 的文件存放目录,必须挂载,否则销毁容器后数据丢失。
  • /usr/local/tomcat/logs Tomcat 的日志目录,挂载后查看日志无须进入容器内部。
  • /data Redis数据存储目录。
  • /data/activemq activemq数据存储目录。

项目部署

数据库信息,暴露端口等信息都在 docker-compose.yml 中配置,一切调试完成后可在启动命令后添加 -d 参数,让其后台启动,此时如果想实时查看启动日志可以使用 docker-compose logs -f 进行查看。

# 后台启动运行
$ docker-compose up -d

# 跟踪查看启动日志
$ docker-compose logs -f

版本信息

  • JAVA11
  • MySQL8.0.16
  • Tomcat9
  • Redis5.0.4
  • Rabbitmq3.8.0

版本信息可在 Dockerfile 中进行修改,修改 Dockerfile 后需要将 docker-compose 中的构建方式改为构建本地镜像:

# 免构建镜像
# image: redis:5.0.4
# 构建本地镜像
  build: ./redis

修改完成后启动时需要重新构建镜像:

$ docker-compose up --build

目录结构

javaweb-compose/
├── activemq
│   ├── data  # 容器数据挂载目录
│   ├── Dockerfile   # activemq 构建文件
│   └── logs   # 容器日志挂载目录
├── docker-compose.yml  # docker-compose 配置文件
├── mysql
│   ├── conf  # 容器配置挂载目录
│   ├── data  # 容器数据挂载目录
│   └── Dockerfile   # MySQL 构建文件
├── README.md
├── redis
│   ├── conf   # 容器配置挂载目录
│   ├── data   # 容器数据挂载目录
│   └── Dockerfile
└── tomcat
    ├── conf    # 容器配置挂载目录
    ├── Dockerfile   # Tomcat 构建文件
    ├── logs   # 容器日志挂载目录
    └── webapps
        └── ROOT   # tomcat默认ROOT项目
……………

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.