在我的笔记本电脑上npm run serve
可以加载我的 Vue 应用程序,http://localhost:8080
所以我初始化了 git 并将应用程序推送到一个新的 Gitlab 存储库中,然后创建Dockerfile
如下:
FROM node:12.18.3 AS build-stage
WORKDIR /app
COPY package*.json .
RUN npm install
COPY . .
RUN npm run build
FROM php:7.3-apache AS production-stage
COPY --from=build-stage /app/dist /var/www/html
EXPOSE 80
CMD ["apachectl", "-D", "FOREGROUND"]
我构建了一个图像docker build -t vue-app .
并在我的笔记本电脑上运行它docker run -d -p 80:80 --rm --name test-vue-app vue-app
,效果很好
因此,要使用 Gitlab CICD 在我的自托管 Ubuntu 上部署此应用程序作为创建的家庭服务器.gitlab-ci.yml
image: docker
services:
- docker:dind
stages:
- deploy
step-deploy-prod:
stage: deploy
script:
- docker build -t vue-app .
- docker run -d -p 80:80 --rm --name testvueapp vue-app
也在另一台电脑上作为服务器(使用新的 Ubuntu 操作系统),安装,ufw
和设置我的路由器以检查这台电脑作为一个简单的家庭服务器运行良好,这是积极的open-ssh
apache2
php
因此使用 ssh 连接到服务器设备并安装和注册gitlab-runner
以及 Docker。
虽然运行 Gitlab Pipeline 可以获得Job succeeded
,但看不到服务器中的任何更改或更新,甚至直接在服务器机器中加载运行容器的结果
PS:通过在服务器设备上启用 apache2,我可以在任何设备上加载一个简单的 php 页面http://XX.XX.XX.XX(根据存在的 /var/www/html/index.php 文件),但在运行之后管道它不起作用,如果在服务器上启用 apache2 只能加载 php 页面而不是 Vue 应用程序