4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GitLab上の自作WebアプリをDockerイメージのビルド時にcloneする

Posted at

自作アプリをGitLabからビルド時にcloneするDockerイメージを作成しました。
メモとして残します。

動作環境

Windows10 Pro
GitLab

参考文献

手順

GitLabの自分のアカウントのTokenを取得

GitLabの右上メニューの「Settings」を押します。
image.png

左メニューの「Access Token」を押します。
image.png

Nameに任意のToken名を入力し、Scopeのapiにチェックを入れて「Create personal access token」を押します。
image.png

作成に成功すると、Tokenが表示されるので控えておきます。
image.png

Dockerイメージをビルドする

以下の要領で__Dockerfile__を作成します。

Dockerfile
# Nodeのexpressのアプリを入れたかったので、nodeのイメージを利用
FROM node:10.12

# 作業ディレクトリを指定
WORKDIR /src

# 作成者情報を記述
LABEL maintainer="y.matsumoto <y.matsumoto@sample.com>"

# -Cオプションでcloneするディレクトリを明記。https://oauth2:[GitLabで取得したToken]@gitlab.com/[プロジェクト名]/[リポジトリ名].gitがURLの構文
RUN git -C / clone chat https://oauth2:[GitLabで取得したToken]@gitlab.com/[プロジェクト名]/[リポジトリ名].git

# expressの実行ファイル系がappディレクトリに入っているので作業ディレクトリにコピー
RUN cp -r /[リポジトリ名]/app/* /src

# clone後、不要なファイルを削除
RUN rm -rf /[リポジトリ名]

# 作業ディレクトリにアプリのpackage.jsonがコピーされているので、npm installがそのまま実行できる
RUN npm install

# コンテナを実行時、サーバが開始するように設定
CMD npm start

Dockerfileのあるディレクトリで以下のコマンドを実行してビルド&コンテナを実行します。

docker image build . --tag [任意のタグ名]
docker container run -d -p 3000:3000 [指定したタグ名]

ブラウザでアクセスすると問題なく立ち上がりました!
image.png

以上です。

ビルド時に自作のアプリの最新版をpullしたdockerイメージを今回作成しましたが、
後々registryにpushして、Kubernetesでpullして利用できる形を目指していきたいと思います。

もしご指摘等ありましたら是非お願い致します!

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?