当前位置: 首页 > 知识库问答 >
问题:

Docker-compose up失败,退出代码135

程胡非
2023-03-14

我试图用Docker compose构建一个简单的< code>next.js应用程序,但它在< code>docker-compose build上一直失败,退出代码为135。我在Mac M1 Pro上运行它(如果这是相关的)。

但我找不到任何指向退出代码135的资源。

  • 这是docker-compose.yaml
version: '3'

services:
  next-app:
    image: node:18-alpine    
    volumes:
      - ./:/site
    command: >
      sh -c "npm install && npm run build && yarn start -H 0.0.0.0 -p 80"
    working_dir: /site
    ports:
      - 80:80

日志:

[+] Running 1/0
 ⠿ Container next-app  Created                                                                                                       0.0s
Attaching to next-app
next-app  | 
next-app  | up to date, audited 551 packages in 3s
next-app  | 
next-app  | 114 packages are looking for funding
next-app  |   run `npm fund` for details
next-app  | 
next-app  | 5 moderate severity vulnerabilities
next-app  | 
next-app  | To address all issues (including breaking changes), run:
next-app  |   npm audit fix --force
next-app  | 
next-app  | Run `npm audit` for details.
next-app  | 
next-app  | > marketing-site-v2@0.1.0 build
next-app  | > next build
next-app  | 
next-app  | info  - Linting and checking validity of types...
next-app  | 
next-app  | ./pages/cloud.tsx
next-app  | 130:6  Warning: Do not use <img>. Use Image from 'next/image' instead. See: https://nextjs.org/docs/messages/no-img-element  @next/next/no-img-element
next-app  | 133:6  Warning: Do not use <img>. Use Image from 'next/image' instead. See: https://nextjs.org/docs/messages/no-img-element  @next/next/no-img-element
next-app  | 150:6  Warning: Do not use <img>. Use Image from 'next/image' instead. See: https://nextjs.org/docs/messages/no-img-element  @next/next/no-img-element
next-app  | 
next-app  | ./pages/index.tsx
next-app  | 176:10  Warning: Image elements must have an alt prop, either with meaningful text, or an empty string for decorative images.  jsx-a11y/alt-text
next-app  | 
next-app  | ./components/main-content-display.tsx
next-app  | 129:6  Warning: Do not use <img>. Use Image from 'next/image' instead. See: https://nextjs.org/docs/messages/no-img-element  @next/next/no-img-element
next-app  | 
next-app  | info  - Need to disable some ESLint rules? Learn more here: https://nextjs.org/docs/basic-features/eslint#disabling-rules
next-app  | info  - Creating an optimized production build...
next-app  | Bus error
next-app exited with code 135

共有2个答案

罗法
2023-03-14

你确实在泊坞站撰写中使用了sh赞扬,这不是使用泊坞站的良好做法。您需要 Docker-compose.yml 以及如下所述的 Dockerfile。

docker-compose.yml

version: "3"
services:
  next-app:
    build: .
    ports:
      - "80:80"

在Dockerfile中

FROM node:16.15.1-alpine3.16 as site

WORKDIR /usr/src/site

COPY site/ .

RUN npm install
RUN npm run build

EXPOSE 80
CMD  npm start

更改后,只需一个命令即可启动服务器。

docker-compose up --build -d
莫河
2023-03-14

如果不知道你的package.json文件中到底有什么-我会试试这个。

通过下面调整后的合成文件,在不安装依赖项的情况下,启动您的vanilla < code > node:18-alpine 映像。

version: '3'

services:
  next-app:
    image: node:18-alpine   
    container_name: my_test_container
    volumes:
      - ./:/site
    command: >
      sh -c "tail -f /dev/null"
    working_dir: /site
    ports:
      - 80:80

此处使用的命令

< code > sh-c " tail-f/dev/null "

是一个流行的香草选项,用于在使用compose(以及不执行其他一些命令时保持容器正常运行,例如.npm start,否则会保持容器运行)。

我还在这里添加了一个container_name以供参考。

接下来,进入容器并尝试按顺序运行原始sh中的每个命令(从npm install开始)。看看其中一个命令是否有问题。

您可以通过下面的命令输入容器(使用上面的< code>container_name)进行测试

docker容器exec-u 0-it my_test_container bash

顺便说一句,在某些时候,我会将npm-install之类的命令从您的撰写文件拉回到定义您的映像的Dockerfile文件中(此处节点:18 alpine.),以及您的应用程序所需的任何其他自定义安装(此处包含在

 类似资料:
  • 我正在为Phonegap开发设置一个环境,我遇到了一些麻烦,最终构建和运行适用于Android的应用程序。 当我尝试执行Android构建时,出现以下错误: 一些细节: 我在 Windows 8.1 上运行; 我使用的是Android SDK 22; 我已经为 JDK、Android(工具、构建工具和平台工具)、Ant 和 Gradle 创建了环境变量。 任何想法为什么我会收到此错误? 谢谢。

  • 问题内容: 嗨,我是一名初学者应用程序开发人员,我选择了phonegap,请在将android作为我的项目平台添加时查看问题。代码如下: 更新:谢谢,我认为它向前移动了一点,但现在它显示了这一点: 问题答案: 请在您的PATH变量中添加 C:\ Windows \ System32

  • 问题内容: 我正在尝试使用docker-compose服务启动容器,但不幸的是, 容器退出了代码0 。容器的建立要归功于.tar.gz归档文件中的存储库。这个档案是一个Centos VM。 我想从同一档案创建6个容器。我想创建一个docker-compose.yml文件,而不是键入6次docker命令,我可以在其中总结其命令和标签。 我已经开始写docker-compose.yml文件只是为了创建

  • 问题内容: 科尔多瓦构建失败,错误代码:EACCESS 已将android平台添加到 尝试重新安装,但无法正常工作 问题答案: 由于某种原因,build当前不是可执行文件。要解决此问题,请打开终端并输入以下命令:

  • 失败:生成失败,出现异常。 错误:配置根项目“Android”时出现问题。

  • 配置根项目“Android”时出现问题。未能解析配置“:classpath”的所有依赖项。 未能解析com.android.tools.build:Gradle:1.0.0+。要求者::Android:未指定 未能列出com.android.tools.build:gradle的版本。 无法从https:.、.、.//repo1.Maven.org/maven2/com/android/tools