遇到的问题
在部署门户环节出现Dockerfile文件拉取镜像不成功,一直卡主,然后就是启动容器不成功,具体报错如下如图。
解决启动Dockerfile文件拉取镜像不成功的办法
改变docker的仓库地址,将仓库地址改成国内的,具体如下
首先是进入docker中,然后使用以下命令,(sudo可以不用写,如果是自己的服务器,自己就有root权限),
sudo vi daemon.json
进入vi编辑器中之后输入以下代码,换成阿里云的地址,也可以换成其他的国内地址,具体自己上网查。
{
"registry-mirrors": ["https://dftbcros.mirror.aliyuncs.com"]
}
之后保存退出,然后重启docker
systemctl daemon-reload
systemctl restart docker
再去拉取镜像就会快很多,亲测有效。
Dockerfile文件
#1、基于镜像node,版本自己查看上面的链接
FROM node:10.15.3
#2、作者
MAINTAINER bugdr.cf
#3、参数,node的环境为生产环境
ENV NODE_ENV=production
#4、任意ip
ENV HOST 0.0.0.0
#5、容器内创建目录sob-blog-nuxt
RUN mkdir -p /sobBlogNuxt
#6、复制当前的内容到容器内容部目录blog
COPY . /sobBlogNuxt
#7、切换工作目录到blog
WORKDIR /sobBlogNuxt
#8、暴露端口3000,默认端口
EXPOSE 3000
#9、配置npm的远程仓库
#RUN npm install cnpm -g --registry=https://registry.npm.taobao.org
#10、清除缓存
RUN npm cache clean --force
#11、安装依赖
RUN npm install --no-package-lock
#12、构建,生成dist文件
RUN npm run build
#13、start
CMD ["npm","start"]
拉取镜像的命令
docker build -t sob-blog-nuxt .
拉取镜像成功之后我们要创建容器,构建一个docker-compose.yml文件,并且启动这个容器。
docker-compose.yml文件
version: '2.0'
services:
nuxt:
restart: always
image: sob-blog-nuxt
container_name: sob-blog-nuxt
ports:
- 3000:3000
运行容器
docker-compose up -d
这里可能部分小伙伴会有一个问题,在运行容器的时候出现了这样一个错误,
ERROR: for sob-blog-nuxt a bytes-like object is required, not 'str'
ERROR: for nuxt a bytes-like object is required, not 'str'
出现这个原因第一就是你的node版本问题,最好别改,按照Dockerfile文件给的版本就行,其次就是Dockerfile的第13步(也可以说是12步,因为注释掉了npm的远程仓库地址)。
#13、start
CMD ["npm","start"]
这里我当时改成了
#13、start
CMD ["cnpm","start"]
导致程序就是出现这样一个错误,别用cnpm命令。 至此部署门户的问题就解决了,之后启动容器成功。
总结
博客部署成功,但是。。。。。。。我的网站还在备案。