我用create-React-app
创建了一个简单的React-app,它在本地主机上运行良好。我现在正在尝试对应用程序进行Dockerify。这是我的包裹。json:
{
"name": "yeet",
"version": "0.1.0",
"engines": {
"node": "12.x"
},
"scripts": {
"client": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"start": "node server.js",
"production": "npm run build && npm run start"
},
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10",
"axios": "^0.21.0",
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"express": "^4.17.1",
"express-session": "^1.17.1",
"mongoose": "^5.10.13",
"mysql": "^2.18.1",
"react": "^17.0.1",
"react-dom": "^17.0.1",
"react-scripts": "4.0.0",
"web-vitals": "^0.2.4"
},
"devDependencies": {
"babel-core": "*",
"babel-loader": "*",
"babel-preset-es2015": "*",
"babel-preset-react": "*",
"babel-preset-stage-0": "*"
},
"babel": {
"presets": [
"@babel/env",
"@babel/react",
"babel-preset-stage-0"
],
"env": {
"start": {
"presets": [
"@babel/env",
"@babel/react",
"babel-preset-stage-0"
]
}
}
}
}
这是我的Dockerfile:
# Specify base image
FROM node:12.19.0-alpine3.10
# Specify app location in host
WORKDIR /app
# Copy the dependency list
COPY package.json ./
# Install app dependencies
RUN npm install
# Copy app code to host
COPY . .
# Open specified port
EXPOSE 3000:3000
# Start the app
CMD ["npm", "run", "production"]
我用以下方法构建图像:
docker build --tag yeet .
然后我运行图像作为一个容器:
docker run --publish 3000:3000 yeet
这抛出:
$docker run--发布3000:3000 yeet
yeet@0.1.0生产/应用程序npm运行构建
yeet@0.1.0生成/应用程序响应脚本生成
/app/node_modules/eslint网页包插件/dist/options。js:62(0,_schemaUtils.default)(_options.default,options,{^
TypeError:(0,_schemaUtils.default)不是模块的新ESLintWebpackPlugin(/app/node_modules/eslint webpack plugin/dist/options.js:62:28)的getOptions(/app/node_modules/eslint webpack plugin/dist/index.js:30:44)的函数。在对象处导出(/app/node\u modules/react scripts/config/webpack.config.js:749:7)。模块中的(/app/node_modules/react scripts/scripts/build.js:67:16)_在对象处编译(internal/modules/cjs/loader.js:1015:30)。模块_扩展。。模块处的js(internal/modules/cjs/loader.js:1035:10)。在函数处加载(内部/modules/cjs/loader.js:879:32)。模块_在函数处加载(内部/modules/cjs/loader.js:724:14)。位于internal/main/run_main_模块的executeUserPoint[as runMain](internal/modules/run_main.js:60:12)。js:17:47 npm错误!代码ELIFECYCLE npm ERR!错误1 npm错误!yeet@0.1.0生成:react脚本生成
npm错误!退出状态1 npm错误!npm错误!失败yeet@0.1.0构建脚本。npm错误!这可能不是npm的问题。上面可能还有其他日志输出。
npm错误!此运行的完整日志可在以下位置找到:npm ERR
/root/。npm/日志/2020-11-07T12\U 47\U 03\U 927Z-debug。日志npm错误!代码ELIFECYCLE npm ERR!错误1 npm错误!yeet@0.1.0生产:npm运行构建
npm错误!此运行的完整日志可在以下位置找到:npm ERR
/root/。npm/日志/2020-11-07T12\U 47\U 03\U 923Z-debug。日志
有人知道我做错了什么吗?任何指针将是超级有帮助的!
对我来说解决问题的是
我也有类似的问题。
尝试用Dockerfile中的纱线替换npm命令-它解决了我的问题。
因此,您的Dockerfile应该如下所示:
# Specify base image
FROM node:12.19.0-alpine3.10
# Specify app location in host
WORKDIR /app
# Copy the dependency list
COPY package.json ./
# Install app dependencies
RUN yarn install
# Copy app code to host
COPY . .
# Open specified port
EXPOSE 3000:3000
# Start the app
CMD ["yarn", "run", "start", "production"]
我确实有同样的问题。我不确定删除或降级库的其他解决方案,如果它在本地运行。
为了解决这个问题,我跑了
docker container prune
docker image prune
在开始建造之前,确保我的码头是干净的。
如果没有成功,您可以尝试删除纱线。锁
或包锁。json
。
如果它能帮助其他人,我的文件是
dockerignore先生
.git
.gitignore
node_modules
build
Dockerfile.dev
FROM node:alpine
WORKDIR /app
COPY package.json /app
RUN yarn install
COPY . .
CMD ["yarn", "start"]
docker-compose.dev.yml
version: "3.8"
services:
print:
stdin_open: true
build:
context: .
dockerfile: Dockerfile.dev
ports:
- "3000:3000"
volumes:
- ".:/app"
- "/app/node_modules"
Dockerfile。戳
FROM node:alpine as build
WORKDIR /app
COPY package.json /app
RUN yarn install
COPY . /app
RUN yarn run build
FROM nginx:stable-alpine
COPY ./nginx/nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=build /app/build /usr/share/nginx/html
docker-compose.prod.yml
version: "3.8"
services:
print:
stdin_open: true
build:
context: .
dockerfile: Dockerfile.prod
ports:
- "80:80"
nginx.conf
server {
listen 80;
server_name frontend;
location / {
root /usr/share/nginx/html;
index index.html;
try_files $uri /index.html;
}
}
要跑
docker-compose.exe -f .\docker-compose.yml up --build
问题内容: 我正在尝试创建一个简单的AJAX请求,该请求从MySQL数据库返回一些数据。这是我的以下功能: …在这里我称之为解析所需的参数: 但是,我的成功回调未运行(因为“成功!”未记录到控制台),并且在控制台中出现错误: 这是什么意思?在成功事件触发$ .ajax内部的匿名函数之前,我已经完成了AJAX请求,但是现在我试图运行一个单独的命名函数(在本例中为回调)。我该怎么办? 问题答案: 这里
我正在创建一个简单的AJAX请求,它从数据库返回一些数据。下面是我的函数: 这就是我称之为它的地方,提供了所需的参数: 但是,回调没有运行,相反,我在控制台中得到一个错误: 为什么?我以前做过AJAX请求,成功事件会触发$.AJAX中的匿名函数,但现在我尝试运行一个单独命名的函数。我该怎么办?
我试图让一个简单的react-redux应用程序工作,但我遇到了一个奇怪的错误,我无法解决。我正在尝试简单地设置我当前用户的名字和处理商店,一个设置函数工作,而另一个不。 setCurrentUserFirstName-工作setCurrentUserHandle-不工作 我将它们作为操作放在useractions.js文件中 在减速器中 我有什么不对的?
我在WordPress插件中有一个简单的jQuery脚本,它使用了如下jQuery包装器: 我从WordPress仪表板中调用这个脚本,并在jQuery框架加载后加载它。 当我检查Firebug中的页面时,我总是收到错误消息: TypeError:$不是函数 $(document).Ready(function(){ 我是否应该将脚本包装在这个函数中: 这个错误我已经犯了好几次了,不知道该怎么处理
当在NodeJS中的 客户端上调用SOAP方法时,我收到以下泛型TypeScript错误。我该怎么修? 示例代码 错误
问题内容: 自从我对JavaScript和React感到陌生以来,我确实在找出正确的语法方面遇到了问题。 这是我的问题: 应该调用该函数,但不会。我收到此错误,无法找出原因。回调可以正常工作。 当我尝试这种语法时,在编译时会立即出现错误。那是因为电子书吗? 问题答案: 当您使用ES6类而不是React.createClass时,它不会自动绑定 this 。 之所以: React.createCla