【原】docker部署nodejs
1621 ワード
dockerfileは以下の通りです
FROM hu.c.163.com/public/nodejs:6.11.0 FROMは、ミラーを構築するための基本的なソースミラーです.hu.c.1636.com/public/nodejs:6.11.0これはミラーの名前です.つまり、最初に国内サーバーから引き落とされたImageです.地元にDockerがないと自分のpullのイメージができます.
RUN mkdir-p/home/Service RUNはImage内にフォルダを作成し、将来コードを保存するために使用します.
WORKDIR/home/Service第二句WORKDIRは私達が作成したフォルダを作業目録として作成します.
COPY./home/Serviceの最初の文のCOPYは、本マシンの現在のディレクトリのすべてのファイルをImage/home/Serviceフォルダの下にコピーします.
EXPOSE 8888は私達のウェブアプリが8888ポートを傍受していますので、このポートをホストに暴露して、外部からウェブにアクセスできます.
ENTRY POINT["npm"、"start"はnpm startコマンドを実行します.このコマンドはnode service.jsを実行します.ここで以前インターネットで見たのは使うCMDですが、CMDを使っています.原因は研究中です.ENTRY POINTに変えたらいいです.
ここのstartはnodeプロジェクトのpackage.jsonで定義されています.以下の通りです.
FROM hub.c.163.com/public/nodejs:6.11.0
# Create app directory
RUN mkdir -p /home/Service
WORKDIR /home/Service
# Bundle app source
COPY . /home/Service
EXPOSE 3000
ENTRYPOINT [ "npm", "start" ]
一言ずつ説明します.FROM hu.c.163.com/public/nodejs:6.11.0 FROMは、ミラーを構築するための基本的なソースミラーです.hu.c.1636.com/public/nodejs:6.11.0これはミラーの名前です.つまり、最初に国内サーバーから引き落とされたImageです.地元にDockerがないと自分のpullのイメージができます.
RUN mkdir-p/home/Service RUNはImage内にフォルダを作成し、将来コードを保存するために使用します.
WORKDIR/home/Service第二句WORKDIRは私達が作成したフォルダを作業目録として作成します.
COPY./home/Serviceの最初の文のCOPYは、本マシンの現在のディレクトリのすべてのファイルをImage/home/Serviceフォルダの下にコピーします.
EXPOSE 8888は私達のウェブアプリが8888ポートを傍受していますので、このポートをホストに暴露して、外部からウェブにアクセスできます.
ENTRY POINT["npm"、"start"はnpm startコマンドを実行します.このコマンドはnode service.jsを実行します.ここで以前インターネットで見たのは使うCMDですが、CMDを使っています.原因は研究中です.ENTRY POINTに変えたらいいです.
ここのstartはnodeプロジェクトのpackage.jsonで定義されています.以下の通りです.
{
"name": "demo2",
"version": "0.0.1",
"description": "demo2",
"main": "meadowlark.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start":" node meadowlark.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.15.4",
"mysql": "^2.14.1"
}
}
Image構築docker build -t mynodeapp .
イメージを実行docker run -d -p 8888:8888 ac5