如何为前端Web应用程序编写dockerfile

时间:2019-07-01 22:07:08

标签: java docker kubernetes google-kubernetes-engine

尝试将我的第一个Java Web应用程序部署到Google Kubernetes。它必须有3个容器。

1-前端网络应用

2-后端Java Web应用程序-Jersey Web服务

3-Postgres服务器

整个Web应用程序都可以在笔记本电脑上的Eclipse Jee(Tomcat)上正常运行。该Web应用程序是非常简单的SPA,没有maven或gradle版本。 对于后端:Dockerfile

FROM tomcat:9.0
ADD backend.war /usr/local/tomcat/webapps/backend.war
EXPOSE 8080

以上图像工作正常。但是对于前端Web应用程序,我真的很困惑。尝试了以下变体,但未成功: a)

FROM  tomcat:9.0
ADD frontend.war /usr/local/tomcat/webapps/frontend.war

b)

FROM tomcat:9.0
COPY frontend.war /usr/local/tomcat/webapps/frontend.war
EXPOSE 8080

c)

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

当我尝试使用Google在浏览器上提供的负载平衡器IP访问我的网站时,显示“无法访问”消息。

1 个答案:

答案 0 :(得分:1)

这是我的示例Web应用程序,后端作为mysql数据库。

前端Dockerfile

FROM  tomcat:9.0
ADD art-gallery-management.war /usr/local/tomcat/webapps/art-gallery-management.war
WORKDIR /usr/local/tomcat/
CMD ["catalina.sh" "run"]
EXPOSE 8080/tcp

后端Dockerfile

FROM mysql:latest
WORKDIR /docker-entrypoint-initdb.d
ADD Schema.sql /docker-entrypoint-initdb.d
CMD ["mysqld"]
EXPOSE 3306/tcp

启动容器

docker container run -d --name art-gallery-management-db -e MYSQL_ROOT_PASSWORD=vision -p 3306:3306 bukkasamudram/art-gallery-management:db-latest 
docker container run -d --name art-gallery-management-app --link art-gallery-management-db -p 8090:8080 bukkasamudram/art-gallery-management:app-latest

确保使用 link 选项将前端容器与后端容器链接。