docker - Docker 没有在 Dockerfile 上运行所有命令
问题描述
我是 docker 的初学者,我在 Youtube 上关注了本教程https://www.youtube.com/watch?v=gAkwW2tuIqE&ab_channel=Fireship
我已经在我的应用程序文件夹中创建了一个 dockerfile。
FROM node:13
WORKDIR /
COPY package*.json ./
RUN npm install
#ngelakuin run di shell (ini buat di shell)
COPY . .
#copy semua file di dalam directory ini
ENV PORT=3000
#menyesuaikan dimana port aplikasi berjalan, port = 3000
EXPOSE 3000
#expose port public
CMD ["npm", "start"]
#ngelakuin run (cmd)
教程说,当我们这样做时,它应该运行 8 个命令docker build
(直到 cmd 命令)。但在我的情况下,只做 5 个(直到COPY . .
)
这就是 docker build 时终端所做的事情。
[+] Building 12.7s (9/9) FINISHED
=> [internal] load .dockerignore 0.0s
=> => transferring context: 34B 0.0s
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 382B 0.0s
=> [internal] load metadata for docker.io/library/node:13 2.7s
=> => transferring context: 57.03kB 0.2s
=> [2/5] COPY package*.json ./ 0.0s
=> [3/5] RUN npm install 9.3s
=> [4/5] COPY . . 0.1s
=> exporting to image 0.2s
=> => exporting layers 0.2s
=> => writing image sha256:93fde5bd0e36d551a0545e1ae6d69b7691d36361b2f75c6eafc2c48cd8ed54d1 0.0s
=> => naming to docker.io/hollyyph/docker-demo-holly:1.0 0.0s
我检查了我是否可以运行图像,但它不能。变成了这样
\docker-demo-holly > docker run sha256:93fde5bd0e36d551a0545e1ae6d69b7691d36361b2f75c6eafc2c48cd8ed54d1
> app-service-hello-world@0.0.1 start /
> node index.js
internal/modules/cjs/loader.js:965
throw err;
^
Error: Cannot find module 'express'
Require stack:
- /index.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:962:15)
at Function.Module._load (internal/modules/cjs/loader.js:838:27)
at Module.require (internal/modules/cjs/loader.js:1022:19)
at require (internal/modules/cjs/helpers.js:72:18)
at Object.<anonymous> (/index.js:1:17)
at Module._compile (internal/modules/cjs/loader.js:1118:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1138:10)
at Module.load (internal/modules/cjs/loader.js:982:32)
at Function.Module._load (internal/modules/cjs/loader.js:875:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [ '/index.js' ]
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! app-service-hello-world@0.0.1 start: `node index.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the app-service-hello-world@0.0.1 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-11-01T19_10_00_543Z-debug.log
解决方案
似乎在查找“express”时存在问题 检查 express 是否作为依赖项添加到 package.json 中。
推荐阅读
- c# - “DirectoryObject”不包含“DisplayName”的定义
- mongodb - 集合中的 ObjectID 和唯一性
- f# - 无法使用 TaskBulder.fs 在 f# 中覆盖 OnBeginDialogAsync
- linux - 使用 Buildroot 2019.05 构建 glibc 交叉编译器
- php - 如何执行存储在 PHP 中类的静态变量中的回调?
- c# - 数据为空。不能对 Null 值调用此方法或属性。在 System.Data.SqlClient.SqlBuffer.get_String()
- swift - Swift 动画删除线 uilabel
- reactjs - 可以通过解构使这个赋值更简单吗?
- apache-spark - 如何根据pyspark中的索引查找数组列的平均值
- python - 在熊猫中使用差异对列进行分组并按另一列对一列进行排序