私のラップトップで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
また、サーバーとして別のPC(新しいUbuntu OSを使用)にインストールufw
し、ルーターをセットアップしてopen-ssh
、このPCが単純なホームサーバーとしてうまく機能することを確認しましたが、これは肯定的でしたapache2
php
そのため、ssh を使用してサーバー デバイスに接続しgitlab-runner
、Docker もインストールして登録します。
Gitlab パイプラインを実行すると を取得Job succeeded
できますが、サーバーで変更や更新を確認できず、コンテナーを実行した結果をサーバー マシンで直接読み込むこともできませんでした。
PS: サーバー デバイスで apache2 を有効にすることにより、任意のデバイスからhttp://XX.XX.XX.XX (存在する /var/www/html/index.php ファイルによると) に単純な php ページを読み込むことができますが、実行後にパイプラインは機能せず、サーバーでapache2を有効にすると、代わりにVueアプリの代わりにphpページをロードできます