大约 2 分钟
服务端
Docker基础Java容器:
基础镜像说明(Since 0.4
):
- 基础镜像中定义的工作目录为
/opt/app
- 基础镜像中自带app.jar位于
/opt/app/app.jar
,输出Hello World!
。使用时覆盖该文件即可。 - 基础镜像中已自带jar程序启动命令,如不满足需求,可自定义。
Dockerfile 示例文件
FROM docker.clzytech.com:1024/openjdk8
# 定义项目工作目录,基础镜像中已定义
# WORKDIR /opt/app
# 添加项目可运行jar包
ADD target/site-starter-1.0.0-SNAPSHOT.jar app.jar
# 拷贝项目配置文件
ADD src/main/resources/application.yml config/application.yml
# 开放端口
EXPOSE 8080
# 定义可外挂配置文件夹和数据文件夹
VOLUME ["/opt/app/config", "/opt/app/datadir", "/opt/app/logs"]
# 容器启动执行脚本,基础镜像中已定义
# ENTRYPOINT ["java", "-jar", "-agentlib:agent", "${JAVA_OPTS}", "/opt/app/app.jar"]
启动服务(适用于linux服务器)
docker run -d --name demo-test --restart=always -p 8080:8080 \
-v /home/demo-test/datadir:/usr/local/demo-test/datadir \
-v /sbin/dmidecode:/sbin/dmidecode -v /dev/mem:/dev/mem --privileged \
docker.clzytech.com:1024/demo-test
注意:在正式环境部署的情况下,必须配置-v /sbin/dmidecode:/sbin/dmidecode -v /dev/mem:/dev/mem --privileged
参数,否则应用程序授权无效,无法正常使用应用程序。
前端
Docker基础Java容器:
- docker.clzytech.com:1024/nginx
- nginx:latest
基础镜像说明:
- 基础镜像中网页工作目录为
/usr/share/nginx/html
- 基础镜像中nginx配置目录
/etc/nginx/conf.d/
由于前后分离部署,需要对后端服务的接口进行反向代理,所有需要配置以下nginx.tpl的文件。如果有其他特殊的需求也请修改该模板文件。
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen ${NGINX_PORT};
server_name localhost;
large_client_header_buffers 4 16k;
client_max_body_size 300m;
client_body_buffer_size 128k;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
proxy_buffer_size 64k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
location / {
index index.html;
try_files $uri $uri/ /index.html;
root /usr/share/nginx/html;
}
location /api/ {
client_max_body_size 1G;
proxy_pass ${VUE_APP_API_PROXY_URL}/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /ws {
client_max_body_size 1G;
proxy_pass ${VUE_APP_API_PROXY_URL}/ws;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
然后进行Docker打包:
FROM nginx
ADD ./dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/nginx.conf.tpl
COPY 40-webconfset.sh /docker-entrypoint.d/
COPY .env* /etc/nginx/envs/
RUN chmod +x /docker-entrypoint.d/40-webconfset.sh
## 解决时区的问题
ENV TZ=Asia/Shanghai
## 解决中文乱码
ENV LC_ALL en_US.UTF-8
ENV ACTIVE_PROFILE=docker
ENV NGINX_PORT=80
ENV WEB_OPTS='{}'
EXPOSE 80
启动服务
docker run -d --name demo-test-web --restart=always -p 80:80 docker.clzytech.com:1024/demo-test-web