如果还对 docker 不太了解可以先看看这两篇教程,十分详细。
只要在项目根目录下写好 Dockerfile 和 docker-compose.yml ,然后执行
docker-compose stop #如果原有项目已存在,则先停止
docker-compose up -d --build #加上--build重新编译项目
docker system prune -a -f #清理掉失效容器和镜像,如果不清理每次部署都会重新生成一个镜像,很占磁盘
在使用docker-compose up -d --build
编译的过程中会利用以前已经编译过的缓存,这对于整个项目的快速部署是十分有帮助的
例如,我们都知道 nodejs 项目中的 node_modules 是非常庞大的,如果每次部署都要重新下载会非常耗时间,因此要利用缓存
# 编译环境
FROM alpine:3.11
WORKDIR /home/app
#锁定nodejs版本
ENV NODE_VERSION 12.15.0-r1
ENV NPM_VERSION 12.15.0-r1
ENV NODE_ENV production
# 安装nodejs环境。
RUN echo "http://mirrors.aliyun.com/alpine/v3.11/main/" > /etc/apk/repositories \
&& echo "http://mirrors.aliyun.com/alpine/v3.11/community/" >> /etc/apk/repositories \
&& apk update \
&& apk add --no-cache --update "nodejs=NULL" "nodejs-npm=NULL" \
&& npm config set registry https://registry.npm.taobao.org
COPY package.json /home/app/
RUN npm install --production #先安装依赖能有效利用缓存
COPY . /home/app
RUN npm run build #部署命令由项目决定
EXPOSE 80 #对外开放80端口
CMD ["npm", "start"] #启动命令
修改完代码后提交到 github 之类的代码仓库,然后使用 webhook 推送到 jenkins 之类的 CI 进行编译部署即可。
- 本文链接: https://wp.cmyr.ltd/archives/docker-compose-preliminary-exploration-of-continuous
- 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
欢迎关注我的其它发布渠道
发表回复
要发表评论,您必须先登录。