diff --git a/bookMarkDocker/Dockerfile b/bookMarkDocker/Dockerfile index 2b99e4e..097615e 100644 --- a/bookMarkDocker/Dockerfile +++ b/bookMarkDocker/Dockerfile @@ -1,14 +1,17 @@ -FROM registry.cn-hangzhou.aliyuncs.com/fleyx/node:v1 +FROM openjdk:11 COPY settings.xml /opt/settings.xml RUN cd /opt && \ - wget https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_linux-x64_bin.tar.gz && \ - tar -xvf openjdk-11+28_linux-x64_bin.tar.gz && \ - mv jdk-11 jdk11 && \ - rm openjdk-11+28_linux-x64_bin.tar.gz && \ + wget https://npm.taobao.org/mirrors/node/v10.16.0/node-v10.16.0-linux-x64.tar.xz && \ + xz -d node-v10.16.0-linux-x64.tar.xz && \ + tar -xf node-v10.16.0-linux-x64.tar && \ + mv node-v10.16.0-linux-x64 node10 && \ + export PATH=$PATH:/opt/node10/bin && \ + ./node10/bin/npm install -g cnpm --registry=https://registry.npm.taobao.org && \ + rm node-v10.16.0-linux-x64.tar && \ wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz && \ - tar -xvf apache-maven-3.6.1-bin.tar.gz && \ + tar -xf apache-maven-3.6.1-bin.tar.gz && \ mv apache-maven-3.6.1 maven && \ rm apache-maven-3.6.1-bin.tar.gz && \ mv maven/conf/settings.xml maven/conf/settings.xml.bak && \ mv settings.xml maven/conf/settings.xml -ENV PATH=$PATH:/opt/jdk11/bin:/opt/maven/bin +ENV PATH=$PATH:/opt/node10/bin:/opt/maven/bin diff --git a/bookMarkDocker/README.md b/bookMarkDocker/README.md new file mode 100644 index 0000000..07b62c3 --- /dev/null +++ b/bookMarkDocker/README.md @@ -0,0 +1,29 @@ +本程序基于 docker 来进行部署。 + +docker 镜像 构建文件为本目录下的`Dockerfile`,已经生产推送到阿里云的容器镜像库:registry.cn-hangzhou.aliyuncs.com/fleyx/node-java-env:v2.本镜像包含如下: + +- node 运行环境,已安装 cnpm +- java 运行编译环境,openjdk11 +- maven 运行环境,已设置为阿里源 + +部署过程如下: + +1. 首先运行 init.sh 进行前后端打包。 +2. 将密码,smtp 等相关敏感信息设置 到环境变量中,内容如下:
+ + ```bash + export MYSQL_PASSWORD=123456 + export JWT_SECRET=123456 + export SMTP_HOST=localhost + export SMTP_USERNAME=test + export SMTP_PASSWORD=test + export SMTP_PORT=465 + ``` + + 两种设置办法: + + - 在终端执行上述命令.这种办法在关闭终端后这些变量会失效,如果重新部署 docker-compose 会报警告--环境变量未定义 + + - 写到配置文件中,比如/etc/profile 等文件中,然后`source /etc/profile` 使其生效。 + +3. 执行`docker-compose up -d` 后台启动系统。 diff --git a/bookMarkDocker/docker-compose.yml b/bookMarkDocker/docker-compose.yml index 1dcf8b3..15acd2c 100644 --- a/bookMarkDocker/docker-compose.yml +++ b/bookMarkDocker/docker-compose.yml @@ -14,7 +14,7 @@ services: - /etc/localtime:/etc/localtime - ./timezone:/etc/timezone environment: - - MYSQL_ROOT_PASSWORD=123456 + - MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD} - MYSQL_DATABASE=bookmark bookmark-redis: image: redis:3.2.10 @@ -57,7 +57,7 @@ services: ports: - 8083:8080 bookmark-service: - image: registry.cn-hangzhou.aliyuncs.com/fleyx/node-java-env:v1 + image: registry.cn-hangzhou.aliyuncs.com/fleyx/node-java-env:v2 container_name: bookmark-service depends_on: - bookmark-mysql @@ -77,13 +77,13 @@ services: sleep 20 && \ ls -l && \ java -jar -DisDev=false \ - -DjwtSecret=123456 \ + -DjwtSecret=${JWT_SECRET} \ -Dmybatis.configuration.log-impl=org.apache.ibatis.logging.nologging.NoLoggingImpl \ - -Dspring.mail.host= \ - -Dspring.mail.username= \ - -Dspring.mail.password= \ - -Dspring.mail.port= \ - -Dspring.datasource.druid.password=123456 \ + -Dspring.mail.host=${SMTP_HOST} \ + -Dspring.mail.username=${SMTP_USERNAME} \ + -Dspring.mail.password=${SMTP_PASSWORD} \ + -Dspring.mail.port=${SMTP_PORT} \ + -Dspring.datasource.druid.password=${MYSQL_PASSWORD} \ -Dspring.datasource.druid.url=jdbc:mysql://bookmark-mysql:3306/bookmark?useUnicode=true\&characterEncoding=utf-8\&useSSL=false\&useJDBCCompliantTimezoneShift=true\&useLegacyDatetimeCode=false\&serverTimezone=UTC \ -Dspring.redis.host=bookmark-redis \ -Des.host=bookmark-es \