簡述
初創公司,最簡單高效的前段自動化部署方案,分享給大家.跟著我一步步操作有問題評論區提問
準備
- 一臺Centos7至少內存為4G的機器。
安裝Docker
<code>curl
-sSL https://get.docker.com/ | sh /<code>
安裝Gitlab
<code>sudo yuminstall
-y git vim gcc glibc-static
telnet sudo yuminstall
-y curl policycoreutils-python openssh-server
sudo systemctlenable
sshd sudo systemctlstart
sshd sudo yuminstall
postfix sudo systemctlenable
postfix sudo systemctlstart
postfix /<code>
- 新建 /etc/yum.repos.d/gitlab-ce.repo 文件
<code>[gitlab-ce]
name
=Gitlab CE Repositorybaseurl
=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever
/gpgcheck
=0
enabled
=1
/<code>
開始安裝
<code>sudo
EXTERNAL_URL="http://www.syappmp.com"
yum install -y gitlab-ce sudo gitlab-ctl reconfigure /<code>
域名設置一個內網可以訪問到這臺機器IP的域名訪問
http://www.yunliantaida.com 可以看到你安裝的gitlab設置好用戶名密碼
安裝gitlab ci runner
<code>curl
-L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash
sudo
yum install gitlab-ci-multi-runner -y
sudo
usermod -aG docker gitlab-runner
sudo
service docker restart
sudo
gitlab-ci-multi-runner status
/<code>
返回 gitlab-runner: Service is running! 標示安裝成功
GitLab CI設置
- 關注我待更新
創建NuxtJS
- 開發機安裝好NodeJS, Yarn具體安裝百度有很多
- 直接場景Nuxt項目
<code>yarn
create nuxt-app yunliantaida
cd
yunliantaida
npm
run dev
/<code>
應用現在運行在 http://localhost:3000 上運行。
編寫DockerFile
- nutx項目目錄下新建Dockerfile
<code>FROM
node:10.16.3-alpine
ENV
NODE_ENV=production
ENV
HOST 0.0.0.0
RUN
mkdir -p /nuxt
COPY
.nuxt/ /nuxt/.nuxt
COPY
static/ /nuxt/static
COPY
nuxt.config.js /nuxt/
COPY
package.json /nuxt/
WORKDIR
/nuxt
EXPOSE
3000
RUN
ls
RUN
npm config set registry https://registry.npm.taobao.org
RUN
npm install
CMD
["npm", "start"]
/<code>
編寫DockerRun腳本
- nutx項目目錄下新建dockerrun.sh
<code> IMAGE_NAME=nginx/www.syappmp.com APP_NAME=www.syappmp.com APP_VERSION=1.0is_exist
() { pid=$(docker ps -a --filter name=${APP_NAME}
| awk'{if (NR>1){print $1}}'
)if
[ -z"
${pid}
" ];then
return
1else
return
0fi
}is_images_exist
() { pidDockerImages=$(docker images | grep''
| awk'{print $3}'
)if
[ -z"
${pidDockerImages}
" ];then
return
1else
return
0fi
} is_images_existif
[ $? -eq"0"
];then
docker rmi${pidDockerImages}
fi
is_existif
[ $? -eq"0"
];then
echo
">>> Dcoker is already running PID=
${pid}
<< docker stop${pid}
docker rm${pid}
fi
docker run --name${APP_NAME}
-d -p 8020:80${IMAGE_NAME}
&echo
">>> start
${APP_NAME}
:${APP_VERSION}
running successed PID=$! << /<code>
- nutx項目目錄下新建 .gitlab-ci.yml (注意前面的.要複製)
<code>stages
:build
deploy
build
:stage
:build
tags
:test
script
:npm install
npm run build
docker build -t nginx/www.syappmp.com .
run
:stage
:deploy
tags
:test
script
:sh dockerrun.sh
/<code>
- 將Nutx項目上傳到GitLab上,每次提交推送git push會自動化打包編譯部署運行Docker容器
- 訪問 http://內網服務IP:8020
- 如果有同學GitLab不會用可以百度一下