从零开始在云上架设自己的网站(第0篇)

1.创建项目

在github上创建项目(这次项目我取名为sora)
https://github.com/new

在本地clone当前项目
git clone https://github.com/jassen75/sora.git

快速用springboot创建项目(gradle)
https://start.spring.io/

将生成好的项目解压到sora文件夹里面,并完成第一次编译
gradle build

2.发布docker image

添加一个简单的DockerFile

FROM nathonfowlie/centos-jre
LABEL maintainer jassen
USER root
COPY build/libs/*.jar /opt/sora/lib/
COPY docker/entrypoint.sh /opt/sora/bin/ 
RUN chmod a+x /opt/sora/bin/*

EXPOSE 8013

WORKDIR /opt/sora/
    
CMD /opt/sora/bin/entrypoint.sh

entrypoint.sh代码如下

#!/bin/bash

java -Dmysql-host=mysql -jar /opt/sora/lib/*.jar

使用docker命令生成版本

docker build --force-rm -t sora:latest --file docker/Dockerfile .

添加一个发布脚本 publish.sh

#!/bin/bash

set -e -x

TAG=$1

PUBLISHTAG=${TAG:-1.0}

docker tag sora:latest jassen75/sora:$PUBLISHTAG
docker login -u jassen75 --password=$PASSWORD 
docker push jassen75/sora:$PUBLISHTAG

使用脚本将编好的image发布到dockerhub上

bash publis.sh 1.03

Screenshot from 2020-05-06 11-59-07.png

到dockerhub上确认1.03版本已经正确上传

3.在云服务器上安装mysql 镜像

我写了一个简单的脚本来做这个事情,在mysql启动以后,顺便执行初始化脚本

#!/bin/bash

set -x

THIS_DIR=$(dirname $(readlink -f ${BASH_SOURCE[0]}))

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=sora -e MYSQL_DATABASE=sora -e MYSQL_USER=admin -e MYSQL_PASSWORD=admin -d mysql:8.0.17 --default-authentication-plugin=mysql_native_password

mysql -h 127.0.0.1 -uroot -psora -e "show databases;"
while [[ $? != 0 ]]
do
    echo "mysql connection is not OK now, waiting for mysql service stable"
    sleep 20
    mysql -h 127.0.0.1 -uroot -psora -e "show databases;"
done
echo "mysql connection is OK"

if [[ -f "${THIS_DIR}/src/main/resources/database/create_tables.sql" ]]; then
    echo "create tables"
    mysql -h 127.0.0.1 -uroot -psora -e "source ${THIS_DIR}/src/main/resources/database/create_tables.sql"
fi

然后就可以运行我们刚才发布的image了,我们的容器做了端口映射,这样8013端口用来测试,而发布的版本使用80端口访问

docker run -p 80:8013 --name sora --link mysql:mysql -d jassen75/sora:1.03

这时候我们可以试试
curl 127.0.0.1 看看服务有没有正常启动

4.配置阿里云的端口

这时候你访问阿里云分配给你的公网ip,令人失望的是网站并无法正常访问,这时候需要在阿里云上做简单的端口配置

Screenshot from 2020-05-06 12-06-52.png

打开你的ECS,在左侧的菜单栏里面,有一个网络与安全
选择子菜单 安全组

Screenshot from 2020-05-06 12-08-19.png

在右边找到配置规则

可以看到,默认只有3条规则,默认开放的主要端口只有22,这是供你ssh上去的,所以这里需要加一条规则,允许80端口访问

Screenshot from 2020-05-06 12-10-29.png

再次访问阿里云分配给你的公网ip,就能看到你的主页了

5.申请域名

阿里云控制台左侧菜单栏很容易找到域名,进去申请你想要的域名

我试着申请了一个cn的(据说最混乱),一年16块钱,你要买好的就比较贵了

申请好域名以后,选择解析

增加一条规则

Screenshot from 2020-05-06 12-15-52.png

将你申请www.xxx.cn 指向你的ECS服务器ip地址

6. 备案

新申请的域名用做网站的话必须备案,阿里云有一个快捷的帮你备案的连接,你进去填写资料

这里比较坑的一点是,你的ECS服务器如果有效期少于3个月,阿里云就不帮你备案了,本人老老实实交了一年的费用(500rmb左右)

有一个步骤需要提交身份证照片,还要人脸识别,需要下载阿里云的app,按照app的要求填写好资料

提交成功以后,会有客服电话联系你,核实资料

在写本文的时候,备案还在网管审查阶段

想想通过自己的域名访问到自己的第一个空间还是很兴奋的事情吧


jassen
7 声望0 粉丝

十年java小菜鸟