我想在GitHub上管理Angular在Docker环境下的部署
0. 介绍
因为我以前从未接触过Angular和Docker,所以决定试试看。
顺便一提,还决定将它们上传到GitHub进行管理。
1. 安装Docker Engine
按照以下官方网站的说明,安装DockerEngine。
-
- 以下のリンクはUbuntuの手順。環境によって手順は異なるので、自身の環境に応じて変更。
https://docs.docker.com/engine/install/ubuntu/
# 卸载旧版本
$ sudo apt-get remove docker docker-engine docker.io containerd runc
# 安装方法
## 设置仓库
$ sudo apt-get update
$ sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg
$ echo \
“deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
## 安装 Docker 引擎
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
$ sudo docker run hello-world
2. 安装Docker Desktop
为了使用Docker Compose,按照以下官方网站上的说明,安装Docker Desktop。
-
- Docker Composeは、Docker Desktopに内包されているので、Docker DesktopをインストールすればOK
-
- 以下のリンクはUbuntu。環境によって手順は異なる。
https://docs.docker.com/desktop/install/ubuntu/
https://docs.docker.com/desktop/release-notes/
sh
# 前提条件
$ sudo apt install gnome-terminal
$ sudo apt remove docker-desktop
# 安装Docker Desktop
$ sudo apt-get update
$ sudo apt-get install ./docker-desktop–.deb # 使用下载的DEB包在此处安装
创建Docker + Angular的配置文件
在适当的目录下创建配置文件组。
# 作業ディレクトリの確認(どこでもいいです)
$ pwd
/home/your-account-name/
# アプリのルートディレクトリの作成
$ mkdir sample-angular-on-docker
$ cd sample-angular-on-docker
# 構成ファイル群を作成
$ touch README.md # Git管理したいので、とりあえず作成
$ touch docker-compose.yml # Docker Composeで環境構築していく(3.2章参照)
$ mkdir app/ # Angularのファイル群が格納される(5章参照)
$ mkdir doc/ # Markdown(Mermaid記法)の設計書を入れていきたい(今回は不使用)
$ mkdir env/ # Dockerfile群を格納
$ mkdir env/node # Angularを稼働させるため、nodeのDockerfileを管理
$ touch env/node/Dockerfile # Angularを稼働させるため、nodeのDockerfile(3.1章参照)
创建Dockerfile
使用Vim等工具创建./env/node/Dockerfile。
FROM node
WORKDIR /projects
RUN npm install -g @angular/cli
EXPOSE 4200
3.2. 创建 docker-compose.yml 文件
使用像vim这样的工具,创建./docker-compose.yml文件。
version: "3"
services:
node:
build: ./env/node
ports:
- "4200:4200"
volumes:
- ".:/projects"
tty: true
4. 启动Docker容器
在第三章的时候,构建文件已经完成,因此可以使用以下命令启动Docker容器。
# `-d`を付ける事で、バックグラウンドで実行
$ sudo docker compose up -d
查看容器列表和镜像列表。
如需查看正在运行的容器清单和已创建的镜像清单,请执行以下命令。
# 起動しているコンテナ一覧を表示
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
60ff460a2f75 sample-angular-on-docker-node "docker-entrypoint.s…" 49 minutes ago Up 33 minutes 0.0.0.0:4200->4200/tcp, :::4200->4200/tcp sample-angular-on-docker-node-1
# 作成済みのイメージ一覧を表示
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
sample-angular-on-docker-node latest 16e654b2053b About an hour ago 1.05GB
停止容器和删除镜像。
如果要停止正在运行的容器并删除已创建的镜像,请执行以下命令。
# 起動しているコンテナの停止(60ff460a2f75 = `docker ps`で得たコンテナID)
$ sudo docker stop 60ff460a2f75
# 作成済みのイメージ一覧を表示(16e654b2053b = `docker images`で得たイメージID)
$ sudo docker rmi -f 16e654b2053b
创建一个Angular项目
进入正在运行的容器,并创建一个Angular项目。
# 以下のコマンドでDockerコンテナに入る
$ sudo docker compose exec node bash
# ここから先はDockerコンテナ内での操作(Dockerコンテナから出るには`exit`を実行)
root@60ff460a2f75:/projects# pwd
/projects
root@60ff460a2f75:/projects# ls -la
total 28
drwxr-xr-x 6 root root 4096 Oct 31 07:15 .
drwxr-xr-x 1 root root 4096 Oct 31 06:56 ..
-rw-r--r-- 1 root root 0 Oct 31 06:05 README.md
drwxr-xr-x 6 root root 4096 Oct 31 07:14 app
drwxr-xr-x 2 root root 4096 Oct 31 06:05 doc
-rw-r--r-- 1 root root 134 Oct 31 06:55 docker-compose.yml
drwxr-xr-x 3 root root 4096 Oct 31 06:54 env
# Angularアプリの作成(カレントディレクトリのapp配下に作成。Git管理はapp配下ではなくホームディレクトリで行いたいので、ここではスキップ。)
root@60ff460a2f75:/projects# ng new app --skip-git
# Angularアプリの実行確認
root@60ff460a2f75:/projects# cd app
root@60ff460a2f75:/projects/app# ng serve --host 0.0.0.0
如果您可以访问以下网址,并且能够看到以下页面,那就没问题了。
- http://localhost:4200/

一旦确认了Angular应用的运行情况,可以通过退出命令在Docker容器中退出。
# Angularアプリの実行確認ができたら、`exit`でDockerコンテナから出ておく
root@60ff460a2f75:/projects/app# exit
exit
# Dockerコンテナから出た事を確認
$ pwd
/home/your-account-name/sample-angular-on-docker
6. Git 管理
Angular在Docker上的环境已经搭建完成,接下来将在GitHub上进行管理。
6.1. 创建存储库
根据以下的公式创建一个代码仓库。
-
- https://docs.github.com/ja/get-started/quickstart/create-a-repo
-
- リポジトリ名は、以下としている(好きにしていいです)
sample-angular-on-docker
6.2. 首次提交 cì
创建仓库后,会出现“按照以下步骤进行第一次提交”,请按照指示进行提交。
# Git管理対象ディレクトリ
$ pwd
/home/your-account-name/sample-angular-on-docker
# 公式に基づいてfitst commit
$ git init
$ git add README.md
$ git commit -m "first commit"
$ git branch -M main
$ git remote add origin git@github.com:your-account-name/sample-angular-on-docker.git # 6.1章にて自身で付けたリポジトリ名を指定
$ git push -u origin main
7. 结束 🙂 🙂 )
只要安装了Docker Engine和Docker Desktop,这个就可以在任何地方运行了。
7.1 以后想要做的事情
-
- フロントエンドはAngularで、バックエンドはPython(Django)やRuby(Rails)にしてみたい
MySQLとかNginxとかを共存させるにはどうしたらいいか試したい
複数コンテナを立ち上げて、コンテナ間通信をしてみたい
关于此事,请参考以下网站。
-
- https://qiita.com/A-Kira/items/8693a78873ca9cab0738
- https://qiita.com/PRONakahira/items/f507d0f912974d1b8c58