声明:此贴针对于小白玩家
一、事前准备
1.阿里云ECS:我用的是下图这个,也可以白嫖试用(3个月,和我购买的性能一致)的,但是试用的不满足备案条件,如果之后想使用域名访问的话,建议还是花点钱
2.远程工具:自己配置好,连接到服务器。也可以使用ecs自带的,都行
3.以上两步做好后,安装Docker,有很多帖子,自行百度吧
二、环境配置
- 目录结构如下:
Sto_DockerCompose
├─ docker-compose.yml
├─ jar
│ ├─ Dockerfile
│ └─ sky-server-1.0-SNAPSHOT.jar
├─ mysql
│ ├─ conf
│ ├─ data
│ └─ init
├─ nginx
│ ├─ conf
│ └─ html
└─ redis
├─ data
└─ redis.conf
1.docker-compose.yml
后续步骤都和此yml文件对应
mysql密码自行指定,redis密码在第5步的.conf里指定
version: "1.0"
services:
mysql:
image: mysql
container_name: mysql
ports:
- "3306:3306"
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: ******
volumes:
- "./mysql/conf:/etc/mysql/conf.d"
- "./mysql/data:/var/lib/mysql"
- "./mysql/init:/docker-entrypoint-initdb.d"
networks:
- sto-net
sky_take_out:
build:
context: ./jar
dockerfile: Dockerfile
container_name: sky_take_out
ports:
- "8080:8080"
networks:
- sto-net
depends_on:
- mysql
nginx:
image: nginx
container_name: nginx
ports:
- "80:80"
volumes:
- "./nginx/conf/nginx.conf:/etc/nginx/nginx.conf"
- "./nginx/html:/usr/share/nginx/html:ro"
depends_on:
- sky_take_out
networks:
- sto-net
redis:
image: redis
container_name: redis
ports:
- "6379:6379"
volumes:
- "./redis/redis.conf:/etc/redis/redis.conf"
- "./redis/data:/data"
depends_on:
- sky_take_out
networks:
- sto-net
command: ["redis-server", "/etc/redis/redis.conf"]
networks:
sto-net:
name: sky_take_out_net
2.jar
DockerFile
# 基础镜像
FROM openjdk:11.0-jre-buster
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY sky-server-1.0-SNAPSHOT.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]
sky-server-1.0-SNAPSHOT.jar
- Maven打包前,需要修改数据库配置,将host分别改为mysql和redis(同一网段的Docker容器可以使用容器名称相互通信)
- mysql用户名root,password是在compose文件中自己指定过的,端口就是3306
sky:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
host: mysql
port: 3306
database: sky_take_out
username: root
password: *********
redis:
host: redis
port: 6379
password: ******
database: 10
3.mysql
conf
新建sto.cnf文件,键入以下内容,就是数据库一些配置
[client]
default_character_set=utf8mb4
[mysql]
default_character_set=utf8mb4
[mysqld]
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
data
空
init
sql脚本,初始化数据库
4.nginx
conf
先修改upstream webservers
upstream webservers{
server Your IP Address:8080 weight=90 ;
}
再修改静态资源位置
location / {
# root html/sky;
root /usr/share/nginx/html/sky;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
html
前端工程,复制过来就行
5.redis
data
空
redis.conf
requirepass ******
三、容器搭建/启动
以上步骤完成后,将Sto_DockerCompose文件夹上传到服务器中,我是上传到了/root/Sto_DockerCompose,然后执行以下命令,构建容器文章来源:https://www.toymoban.com/news/detail-774612.html
cd /root/Sto_DockerCompose
docker compose up -d
#up: 启动服务。
#-d: 在后台运行服务(以守护进程方式)。
到这里就大功告成了,大家可以使用自己的IP访问了,默认端口80。文章来源地址https://www.toymoban.com/news/detail-774612.html
到了这里,关于苍穹外卖后端部署/阿里云ECS/Docker的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!