Dockerfile文件的书写
里面包含一个webapp项目的书写
#下载基础镜像
FROM ubuntu:18.04
#下载JDK
ADD ./jdk-8u221-linux-x64.tar.gz /opt/
#配置JDK环境变量
ENV JAVA_HOME /opt/jdk1.8.0_221
ENV CLSAAPATH ${JAVA_HOME}/lib;${JAVA_HOME}/jre/lib
ENV PATH ${JAVA_HOME}/bin:$PATH
#从宿主机复制tomcat到容器中并解压
ADD ./apache-tomcat-9.0.37.tar.gz /opt/
#下载项目war包
COPY member.war /opt/apache-tomcat-9.0.37/webapps/
#切换目录
WORKDIR /opt/
# 在程序运行时启动tomcat
CMD ["/opt/apache-tomcat-9.0.37/bin/catalina.sh", "run"]
里面需要包含文件:orcal JDK1.8.tar.tz安装包,tomcat.tar.tz安装包,ssm项目war包
nginx配置文件的映射
user root root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location /member {
proxy_pass http://120.25.121.220:8090/member;
}
}
}
docker-compose.yml文件书写
# 声明docker-compose的版本
version: "2"
# 声明一组服务
services:
#
nginx:
# 从远程仓库下载现成的镜像
image: nginx
ports:
- 80:80
- 443:443
volumes:
# html
- ./nginx/html/:/usr/share/nginx/html/
- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/log:/var/log/nginx
app:
# 通过dockerfile构建镜像
build: ./mem/
# 等价于
# context: ./app/
# dockerfile: Dockerfile
ports:
# run -p 映射端口
- "8090:8080"
- "9000:9000"
mysql:
# mysql 数据 保存在宿主机
# 数据卷 -v
image: mysql
volumes:
- ./data/:/var/lib/mysql
- ./logs/:/var/log/mysql
command:
--default-authentication-plugin=mysql_native_password
# 设置数据库的编码
--character-set-server=utf8mb4
# 设置数据库默认的排序方式
--collation-server=utf8mb4_general_ci
# 解决低版本不允许时间字段 not null
--explicit_defaults_for_timestamp=true
# Linux 表名区分大小写 1 表示不区分大小写
--lower_case_table_names=1
environment:
# 第一个连接数据URL的时候指定时区
# 第二个 创建数据库的指定时区
TZ: Asia/Shanghai
# 注意 在开发中不要使用root用户去连接数据库 安全考虑
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: hello
MYSQL_PASSWORD: world
里面需要包含文件:nginx.conf自定义配置文件,html自定义前端页面,log文件目录来做映射,还有上面书写Dockerfile文件和里面包含的压缩包.