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
到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,令人失望的是网站并无法正常访问,这时候需要在阿里云上做简单的端口配置
打开你的ECS,在左侧的菜单栏里面,有一个网络与安全
选择子菜单 安全组
在右边找到配置规则
可以看到,默认只有3条规则,默认开放的主要端口只有22,这是供你ssh上去的,所以这里需要加一条规则,允许80端口访问
,
再次访问阿里云分配给你的公网ip,就能看到你的主页了
5.申请域名
阿里云控制台左侧菜单栏很容易找到域名,进去申请你想要的域名
我试着申请了一个cn的(据说最混乱),一年16块钱,你要买好的就比较贵了
申请好域名以后,选择解析
增加一条规则
将你申请www.xxx.cn 指向你的ECS服务器ip地址
6. 备案
新申请的域名用做网站的话必须备案,阿里云有一个快捷的帮你备案的连接,你进去填写资料
这里比较坑的一点是,你的ECS服务器如果有效期少于3个月,阿里云就不帮你备案了,本人老老实实交了一年的费用(500rmb左右)
有一个步骤需要提交身份证照片,还要人脸识别,需要下载阿里云的app,按照app的要求填写好资料
提交成功以后,会有客服电话联系你,核实资料
在写本文的时候,备案还在网管审查阶段
想想通过自己的域名访问到自己的第一个空间还是很兴奋的事情吧
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。