本文示範兩種使用 Dockerfile 的方法:
FROM node:latest
WORKDIR /app
EXPOSE 8080
ENTRYPOINT chmod 577 client && ./client
#!/usr/bin/perl -w
use strict;
use Cwd;
my $dir = 'node_modules';
# install pnpm
system("npm install pnpm -g");
# if don't have node_modules, install it
system("pnpm install") unless (-e $dir and -d $dir);
# run serve
system("npm run serve");
# 建立 image
docker build -t todos .
# 啟動 container,$PWD 代表當前使用者的目錄
docker run --rm -v $PWD/client:/app -p 8080:8080 todos
FROM node:lts-alpine
# 首先安裝一個簡單的 http server。
# 在現實環境,我們會使用 nginx/apache 作為 http service。
RUN npm install -g http-server
# 將 /app 資料夾作為當前的工作環境
WORKDIR /app
# 複製 'package.json' 與 'package-lock.json'
COPY package*.json ./
# 安裝專案的 Dependency
RUN npm install
# 將整個專案複製進 Docker
COPY . .
# 使用 npm run build 建置專案
RUN npm run build
# 暴露 8080 port
EXPOSE 8080
# 在 container 啟動時,讓 http-server 入口指向 /dist 目錄。
CMD [ "http-server", "dist" ]
# 建立 image
docker build -t todos .
# 啟動 container
docker run -p 8080:8080 --rm todos