苍穹外卖后端部署/阿里云ECS/Docker

声明:此贴针对于小白玩家

一、事前准备

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,然后执行以下命令,构建容器

cd /root/Sto_DockerCompose
docker compose up -d 
#up: 启动服务。
#-d: 在后台运行服务(以守护进程方式)。

到这里就大功告成了,大家可以使用自己的IP访问了,默认端口80。

  • 24
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值