やりたいこと
- Dockerでnode.jsの開発環境を構築したく、CentOSイメージにローカルで作成したnode.jsアプリをコピーして展開したいです.
- 配下のディレクトリにあるソースコードを丸々特定のディレトリにコピーしたいと考えています.
- node.jsに限らず、Dockerfileに関する一般的な、初歩的な質問となってしまいます.
状況
ソースコードが、イメージに全くコピーされなかったです.Dockerfileは以下のように書きました.
Dockerfile
1FROM centos:7 2 3ENV APP_HOME = /app/nodejs 4 5RUN yum install -y epel-release && \ 6 yum install -y nodejs npm && \ 7 mkdir -p $APP_HOME 8# 問題の一行です。。 9COPY ./src $APP_HOME 10 11EXPOSE 3000 4000 12 13RUN cd $APP_HOME && npm install && ls -la 14 15CMD node app.js
ディレクトリを丸々コピーというのはできないもんなんでしょうか。。でもそんな不便ではないはずだと思うのですが。。
ディレクトリ構成は以下のようにしています.src
配下に、必要なコード一式を配置しています.
RootDir ┣━Dockerfile ┗━src
RootDirでビルドを実行しました.
環境について
shell
1$ docker -v 2Docker version 18.03.0-ce, build 0520e24 3$ node -v 4v6.11.4
実行時のメッセージ
Step 1/7 : FROM centos:7 ---> 49f7960eb7e4 Step 2/7 : ENV APP_HOME = /app/nodejs ---> Using cache ---> 7461da6fb754 Step 3/7 : RUN yum install -y epel-release && yum install -y nodejs npm && mkdir -p $APP_HOME ---> Using cache ---> 3d3f54aa435f Step 4/7 : COPY . $APP_HOME ---> b64710ca54fe Step 5/7 : EXPOSE 3000 4000 ---> Running in e87a8591a0ac Removing intermediate container e87a8591a0ac ---> 154bc9b2a5ca Step 6/7 : RUN cd $APP_HOME && npm install && ls -la ---> Running in 113fa7580ccd npm WARN enoent ENOENT: no such file or directory, open '/=/package.json' npm WARN = No description npm WARN = No repository field. npm WARN = No README data npm WARN = No license field. total 12 drwxr-xr-x 1 root root 4096 Jul 22 04:41 . drwxr-xr-x 1 root root 4096 Jul 22 04:41 .. drwxr-xr-x 2 root root 4096 Jul 22 04:41 node_modules Removing intermediate container 113fa7580ccd ---> 0e08ad88dc04 Step 7/7 : CMD node app.js ---> Running in 93b8b8c07f82 Removing intermediate container 93b8b8c07f82 ---> d4e0a3ea5563 Successfully built d4e0a3ea5563 Successfully tagged node-webserver:1.0.0
見た感じ、狙ったディレクトリのコピーができていないようです.
package.jsonがない、と言われてますし。。
色々調べて見ましたが、ちょっとさっぱりわかりませんで、どなたかこういう方法があるよ、とかいいんじゃないか、とかご教示いただければ幸いです.
どうぞよろしくお願いいたします.
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/29 22:43