命令“supervisorctl restart”失败,退出代码使用 mac m1

Command `supervisorctl restart` failed with exit code using mac m1

我 运行 在 mac m1,docker,gulp。

我的第一个错误是找不到命令 ld,但我在这里修复了它。

之后它导致我出现这个错误。

这是完整的错误:

[17:09:04] 'restart-supervisor' errored after 1.04 s

[17:14:45] '<anonymous>' errored after 220 ms

[17:14:45] Error in plugin "gulp-shell"

Message:

    Command `supervisorctl restart projectname` failed with exit code 7

[17:14:45] 'restart-supervisor' errored after 838 ms

我做了很多研究:

  1. 我试过这样做,但找不到命令。
    https://github.com/Supervisor/supervisor/issues/121
  2. 这也是。 https://github.com/Supervisor/supervisor/issues/1223.
  3. 我什至把我的形象改成了arm64v8/golang:1.17-alpine3.14

这是我的 gulpfile.js:

var gulp = require("gulp");
var shell = require('gulp-shell');
gulp.task("build-binary", shell.task(
'go build'
));
gulp.task("restart-supervisor", gulp.series("build-binary", shell.task(
'supervisorctl restart projectname'
)))
gulp.task('watch', function() {
    gulp.watch([
                "*.go", 
                "*.mod", 
                "*.sum", 
                "**/*.go", 
                "**/*.mod",
                "**/*.sum"
                ], 
                {interval: 1000, usePolling: true},
                gulp.series('build-binary', 'restart-supervisor'
    ));
});
gulp.task('default', gulp.series('watch'));

这是我当前的docker文件:

FROM arm64v8/golang:1.17-alpine3.14
RUN apk update && apk add gcc make git libc-dev binutils-gold

# Install dependencies
RUN apk add --update tzdata \
    --no-cache ca-certificates git wget \
    nodejs npm \
    g++ \
    supervisor \
    && update-ca-certificates \
    && npm install -g gulp gulp-shell

COPY ops/api/local/supervisor /etc
ENV PATH $PATH:/go/bin
WORKDIR /go/src/github.com/projectname/src/api

在我的 docker-compose.yaml 中我有这个:

entrypoint:
  [
    "sh",
    "-c",
    "npm install gulp gulp-shell && supervisord -c /etc/supervisord.conf && gulp"
  ]

vim /etc/supervisord.conf:

    #!/bin/sh

[unix_http_server]
    file=/tmp/supervisor.sock
    username=admin
    password=revproxy
    
    [supervisord]
    nodaemon=false
    user=root
    logfile=/dev/null
    logfile_maxbytes=0
    logfile_backups=0
    loglevel=info   
    [rpcinterface:supervisor]
    supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
    
    [supervisorctl]
    serverurl=unix:///tmp/supervisor.sock
    username=admin
    password=revproxy
    
    [program:projectname_api]
    directory=/go/src/github.com/projectname/src/api
    command=/go/src/github.com/projectname/src/api/api
    autostart=true
    autorestart=true
    stderr_logfile=/go/src/github.com/projectname/src/api/api_err.log
    stderr_logfile_maxbytes=0
  stdout_logfile=/go/src/github.com/projectname/src/api/api_debug.log
    stdout_logfile_maxbytes=0
    startsecs=0

但是说真的,这个macm1有什么问题。
我已经尝试在 rosetta 和 non-rosetta 版本 2.
中做到这一点 如果我的问题标题有误请指正,我也不确定我的错误。

我通过添加 #!/bin/shstartsecs=0 解决了问题,没有显示任何错误,但下一个问题是 API 不是 运行。