【问题标题】:What should a dockerfile contain to run a simple CRUD web application?dockerfile 应该包含什么来运行一个简单的 CRUD Web 应用程序?
【发布时间】:2017-01-05 22:46:14
【问题描述】:

我正在研究 Docker,为了更好地理解,我想用它来运行我不久前创建的 Java Web 应用程序。它在后端使用 Java、Spring、Hibernate,在前端使用 Spring MVC,并使用 MySQL 作为数据库。在 Eclipse 中,它可以很容易地在 Tomcat 上运行并在浏览器中打开。本质上,它是一个简单的 CRUD 应用程序。

为了创建一个 dockerfile 来运行它,我需要从 (FROM) 一个操作系统映像开始吗?如何包含 Java、MySQL 和 Tomcat 实例?如何配置它以运行应用程序战争?

【问题讨论】:

标签: java mysql tomcat docker dockerfile


【解决方案1】:

标准的 Docker 风格是每个容器都有一个服务,然后有一个编排工具将容器作为一个组来管理。

Docker 附带了一个名为 Docker Compose 的工具,该工具配置了一个 docker-compose.yml 文件。

version: '2'

services:
  myapp_web:
    build: ./web/
    ports:
     - "8080:8080"
    networks:
     - myapp_net

  myapp_db:
    build: ./db/
    volumes:
     - myapp_data:/var/lib/mysql
    networks:
     - myapp_net

volumes:
  myapp_data:

networks:
  myapp_net:
    driver: bridge

Dockerfile

如果您从现有映像启动 Dockerfile,这将是最简单的,这样您就不必处理完整的构建。大多数流行的开源软件将在Docker Hub 上提供图像。搜索“docker”通常会是最上面的结果。从您使用的图像中查看Dockerfile。官方镜像倾向于使用所有当前的最佳实践。

mysql image 为您提供带有一些自定义配置选项的空白 mysql 安装。您最初可能不需要Dockerfile

./db/Dockerfile

FROM mysql:5.7
RUN some-setup.sh

tomcat image 提供了一个可以工作的 OpenJDK 和 Tomcat 安装,供您将应用部署到。

./web/Dockerfile

FROM 8.0-jre8-alpine
COPY myapp.war /usr/local/tomcat/webapps/myapp.war

【讨论】:

    猜你喜欢
    • 2011-11-16
    • 2011-08-18
    • 2021-12-04
    • 2023-03-14
    • 1970-01-01
    • 2013-04-09
    • 2019-02-02
    • 2012-02-14
    • 2020-12-13
    相关资源
    最近更新 更多