最近在做公司官网,并且不想使用原本服务器或者oss的方式实现,所以使用了容器化部署的方式
首先,不同于原本的依赖于服务器部署的方式,我依赖于ACR和ECI实现,好处是不需要购买服务器,弹性容器。
接下来如何操作呢?我的所有操作均在阿里云上进行
1、搜索acr
创建一个实例,可以是个人版,也可以是企业版,创建成功后是这样的
其实ACR就是docker的镜像仓库,创建命名空间、创建仓库
然后将自己本地打包好的镜像上传到这个仓库中,甚至可以连接git,实现自动化打包和上传
上传完成后,可以自己本地拉取下来后运行看看效果
2、设置eci,需要完成acr镜像的上传
eci就可以看成是docker的容器,而且是直接运行的容器,在eci中创建弹性容器组
下面就是有什么点什么,安全组就是设置端口暴露的地方,前端的话需要暴露80和443,远程连接的话需要暴露22,看自己的需求
选择自己刚才创建的镜像
选择下一步配置
配置自己的弹性公网ip,之后会直接用ip访问
配置确认
之后就可以通过弹性公网的ip直接连接了
注意:安全组的端口一定要开放,否则只能ping通,但是无法访问
哦对,还有前端需要写dockerfile和nginx.conf
Dockerfile
# 使用轻量级 Nginx 基础镜像
FROM nginx:alpine
RUN rm -rf /etc/nginx/conf.d/default.conf
COPY dist/ /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/conf.d/
# 暴露 80 端口
EXPOSE 80
# 启动 Nginx
CMD ["nginx", "-g", "daemon off;"]
nginx.conf
# nginx.conf
server {
listen 80;
server_name _;
# 根目录指向项目静态文件
root /usr/share/nginx/html;
index index.html;
# 处理单页应用路由
location / {
try_files $uri $uri/ /index.html;
}
# 启用 Gzip 压缩
gzip on;
gzip_types text/plain text/css application/json application/javascript;
}