前后端docker部署

environment:

两台服务器:
本地服务器(local):centos7
具备公网ip 的云服务(cloud)centos7
通过内网穿透给两服务器创建一个网络通道
使用工具openvpn或frps,推荐openvpn,frps不知为何会占用很大的资源

(二)local Docker部署前后端

local部署

因为我是通过Docker进行容器化部署的,所以先要打开本地服务器的Docker远程访问权限

打开本地服务器的Docker远程访问权限

修改 /lib/systemd/system/docker.service

vim /lib/systemd/system/docker.service
修改
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
为
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

重启Docker

systemctl daemon-reload
systemctl restart docker

开启防火墙的2375端口

firewall-cmd --add-port=2375/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports

在浏览器访问curl http://local-ip:2375/version得到类似下面的json数据,则表示开启成功
1.png

后端

1 idea配置docker

打开设置
2.png
进行两部配置就行
然后进行镜像源的配置
3.png
最后 Apply --> OK

2 集成maven插件

修改pom文件

<properties>
    <!--docker镜像的前缀-->
    <docker.image.prefix>docker</docker.image.prefix>
</properties>

<plugin>
  <groupId>com.spotify</groupId>
  <artifactId>docker-maven-plugin</artifactId>
  <version>1.0.0</version>

  <configuration>
    <!--远程Docker的地址-->
    <dockerHost>http://local-ip:2375</dockerHost>
    <!--镜像名称,前缀/项目名-->
    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
    <dockerDirectory>src/main/docker</dockerDirectory>
    <resources>
      <resource>
        <targetPath>/</targetPath>
        <directory>${project.build.directory}</directory>
        <include>${project.build.finalName}.jar</include>
      </resource>
    </resources>
  </configuration>
</plugin>

http://local-ip:2375记得修改

3 docker部署

在项目的根目录下创建/docker/Dockerfile文件

FROM openjdk:8
VOLUME /tmp
ADD aurora-springboot-0.0.1.jar blog.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/blog.jar"]

注意修改jar包名称路径
创建完成后,依次执行以下操作

之后就可以通过docker images查看到新生成的镜像啦

# 运行
docker run -d --name blog-backend -p 8080:8080 --restart=always blog
# 查看
docker ps
# 日志
docker logs blog

之后可以通过ApiFox等api测试软件测试

至此,后端就不熟完成啦

前端

1 构建Dockerfile文件

在插件市场找到Docker安装
通过F1打开命令操作栏,进行如下操作

5.png

一路下来插件会根据项目情况为生成Dockerfile

2 解析Dockerfile

FROM node:lts-alpine # 使用node包
ENV NODE_ENV=production # 设置node环境为development
WORKDIR /usr/src/app # 镜像的主目录
# 复制当前目录的文件到 docker镜像主目录中
COPY ["package.json", "yarn.lock", "package-lock.json*", "npm-shrinkwrap.json*", "./"]
# 在docker镜像中执行对应命令
RUN yarn install --production=false --silent
COPY . .
# 暴露端口
EXPOSE 8808
# 增加操作权限
RUN chown -R node /usr/src/app
USER node
# 执行命令
CMD ["yarn", "start:docker"]

参考
可根据需要修改,以下是我的:

FROM node:lts-alpine
# ENV NODE_ENV=production
WORKDIR /path/frontend-app/blog
COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"]
RUN npm install --production --silent && mv node_modules ../
COPY . .
EXPOSE 80
RUN npm install -g @vue/cli-service
RUN npm install babel-plugin-import -D
RUN chown -R node /path/frontend-app/blog
USER node
# 根据需要修改,不懂前端,这个貌似是生产环境的
CMD ["npm", "run", "serve"]

部署

将文件夹压缩上传到local并解压,进入文件夹,执行以下命令

docker build -t imagename ./	# 修改imagename,首次时间会比较久
# 查看镜像
docker images
# 运行
docker run -d --name container-name -p 8081:8080 --restart=always imagesname	# 注意,容器端口是8080
# 查看
docker ps

至此,前后端部署都完成啦

要注意修改前后段的配置文件:application.ymlvue.config.js

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值