docker-compose前后端项目部署
不管是前端项目,还是后端项目。都是通过这三步,项目打包=>构建镜像=>运行容器,来完成的。在项目打包完成后,放到服务器的项目文件夹根据对应的Dockerfile文件进行构建镜像,最后运行容器暴露端口给外部访问。
下面使用docker-compose在云服务器中一键部署前后端项目。
docker在服务器中部署多个前端-CSDN博客https://blog.csdn.net/a983677218/article/details/137209770?spm=1001.2014.3001.5501 前端的细节部分在上一篇博客,这次主要说后端部分。
在IDEA里面
最后我们会得到一个target文件夹
在拿到这个jar包后,使用Xshell远程连接到服务器。把这个jar包放到对应的项目文件夹。
现在在对应的文件夹,创建Dockerfile文件,里面用来构建镜像。
Dockerfile:
FROM java:8 COPY exam-0.0.1-SNAPSHOT.jar /exam-0.0.1-SNAPSHOT.jar CMD ["--server.port=8080] EXPOSE 8080 ENTRYPOINT ["java", "-jar", "/exam-0.0.1-SNAPSHOT.jar"]
FROM java:8
:从官方Java 8镜像开始构建Docker镜像。COPY exam-0.0.1-SNAPSHOT.jar /exam-0.0.1-SNAPSHOT.jar
:将本地的exam-0.0.1-SNAPSHOT.jar
文件复制到Docker镜像中,并命名为/exam-0.0.1-SNAPSHOT.jar
。CMD ["--server.port=8080"]
:指定容器启动时的默认命令为--server.port=8080
。这里的命令会传递给ENTRYPOINT
指定的命令。EXPOSE 8080
:将容器内部的8080端口暴露给外部,允许外部访问该端口。ENTRYPOINT ["java", "-jar", "/exam-0.0.1-SNAPSHOT.jar"]
:定义容器启动时执行的命令。在这里,使用Java命令执行exam-0.0.1-SNAPSHOT.jar
文件,启动一个Java应用程序。
最后我们项目目录中应该有这两个文件
现在开始编写docker-compose.yml文件~
docker-compose.yml:
version: '3'
services:
exam-user:
build:
context: ./ljc/project/web/user
dockerfile: Dockerfile
ports:
- 9000:80
container_name: exam-user
restart: unless-stopped
exam-admin:
build:
context: ./ljc/project/web/admin
dockerfile: Dockerfile
ports:
- 9528:80
container_name: exam-admin
restart: unless-stopped
exam-service:
image: exam-service:latest
build: . # 表示以当前目录下的Dockerfile开始构建镜像
ports:
- 8080:8080
privileged: true
mysql:
image: mysql:8.0.28
container_name: mysql
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: "123456"
volumes:
- /host/mysql_data:/var/lib/mysql
restart: unless-stopped
redis:
image: redis:latest
restart: always
ports:
- 6379:6379
编写完成后,表示一共启动五个容器,mysql,redis,service,user,admin。
最后在当前目录文件夹运行
docker-compose up -d
运行会找到对应的Dockerfile文件,进行镜像构建,然后运行
这是运行状态~
运行完成后就可以打开浏览器,输入服务器的ip加上暴露的端口号访问到我们的项目了~
更多推荐
所有评论(0)