139在Apple M1上运行Dockerfile时的退出代码

139在Apple M1上运行Dockerfile时的退出代码,docker,go,apple-m1,Docker,Go,Apple M1,我正在尝试构建一个Go二进制文件,并使用M1芯片在我的Macbook上的Docker中运行它 这个Dockerfile在我的旧Mac电脑上运行得很好,但现在我得到了 演示应用程序已退出,代码为139 下面是我的Dockerfile FROM golang:1.16.3-alpine3.13 AS builder RUN apk update && apk add gcc make git libc-dev binutils-gold ADD ./ /src/ WORKDIR

我正在尝试构建一个Go二进制文件,并使用M1芯片在我的Macbook上的Docker中运行它

这个Dockerfile在我的旧Mac电脑上运行得很好,但现在我得到了

演示应用程序已退出,代码为139

下面是我的Dockerfile

FROM golang:1.16.3-alpine3.13 AS builder

RUN apk update && apk add gcc make git libc-dev binutils-gold

ADD ./ /src/

WORKDIR /src/

RUN make build

FROM alpine:3.13.5

COPY --from=builder /src/static /app/static
COPY --from=builder /src/demo-app /app/

ENTRYPOINT ["/app/demo-app"]
我的
make build
命令如下所示:

build:
    @go build -race -o demo-app -ldflags="-X 'main.Version=${VERSION}'"
我正在努力了解这里可能存在的问题,因为当我运行
docker logs

如果我运行
docker inspect
我会得到以下输出:

[
    {
        "Id": "a3669101ce0ab0131efb7a677c3d70af968688cb9241d07d08043c94a89023e7",
        "Created": "2021-04-27T17:19:48.335121134Z",
        "Path": "/app/demo-app",
        "Args": [
            "run",
            "-c",
            "/data/node/node_0"
        ],
        "State": {
            "Status": "exited",
            "Running": false,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 0,
            "ExitCode": 139,
            "Error": "",
            "StartedAt": "2021-04-27T17:19:55.371644929Z",
            "FinishedAt": "2021-04-27T17:19:55.379452013Z"
        },
        "Image": "sha256:12381f593cacf98ef6db5cdce1ac256a4dcf548c79546ac379ff83f44d3c2e27",
        "ResolvConfPath": "/var/lib/docker/containers/a3669101ce0ab0131efb7a677c3d70af968688cb9241d07d08043c94a89023e7/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/a3669101ce0ab0131efb7a677c3d70af968688cb9241d07d08043c94a89023e7/hostname",
        "HostsPath": "/var/lib/docker/containers/a3669101ce0ab0131efb7a677c3d70af968688cb9241d07d08043c94a89023e7/hosts",
        "LogPath": "/var/lib/docker/containers/a3669101ce0ab0131efb7a677c3d70af968688cb9241d07d08043c94a89023e7/a3669101ce0ab0131efb7a677c3d70af968688cb9241d07d08043c94a89023e7-json.log",
        "Name": "/demo-stack",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/Users/user/GolandProjects/demo-stack/node_data:/data:rw"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "demo_stack_default",
            "PortBindings": {
                "6000/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "6000"
                    }
                ],
                "8181/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "8181"
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": [],
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": null,
            "DnsOptions": null,
            "DnsSearch": null,
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": null,
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": null,
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/64ead378dc1dc809210371fb3d2a248456554565f50295ef311e81992c6b6d05-init/diff:/var/lib/docker/overlay2/giyvkrgjmvb0bvm5r5cqxonga/diff:/var/lib/docker/overlay2/m7e7twkjn3fuw3jb9r3apmexo/diff:/var/lib/docker/overlay2/0c4418a6b57b8f88cc55008c8defa662221f91379e0ca6980e4db6b12375a6b8/diff",
                "MergedDir": "/var/lib/docker/overlay2/64ead378dc1dc809210371fb3d2a248456554565f50295ef311e81992c6b6d05/merged",
                "UpperDir": "/var/lib/docker/overlay2/64ead378dc1dc809210371fb3d2a248456554565f50295ef311e81992c6b6d05/diff",
                "WorkDir": "/var/lib/docker/overlay2/64ead378dc1dc809210371fb3d2a248456554565f50295ef311e81992c6b6d05/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/Users/user/GolandProjects/demo-stack/node_data",
                "Destination": "/data",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "a3669101ce0a",
            "Domainname": "",
            "User": "501:20",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "6000/tcp": {},
                "8181/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "run",
                "-c",
                "/data/node/node_0"
            ],
            "Image": "demo-app:local",
            "Volumes": {
                "/data": {}
            },
            "WorkingDir": "",
            "Entrypoint": [
                "/app/demo-app"
            ],
            "OnBuild": null,
            "Labels": {
                "com.docker.compose.config-hash": "ff9efa26c99c8f07ca045a34b2a98593e85c1de74f86d56b800d0b0a7aee5a35",
                "com.docker.compose.container-number": "1",
                "com.docker.compose.oneoff": "False",
                "com.docker.compose.project": "demo-stack",
                "com.docker.compose.project.config_files": "docker-compose.yml",
                "com.docker.compose.project.working_dir": "/Users/user/GolandProjects/demo-stack",
                "com.docker.compose.service": "demo-app-0",
                "com.docker.compose.version": "1.29.0"
            }
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "6754f8c99b7830abeb4a9d051406a8f3c3116754bdd1116e86557185be6fa28f",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/6754f8c99b78",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "demo-stack_default": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": [
                        "demo-app-0",
                        "a3669101ce0a"
                    ],
                    "NetworkID": "24c737361b5785ef210d7504237029d086304a4c6755a4b95306580b07233adc",
                    "EndpointID": "",
                    "Gateway": "",
                    "IPAddress": "",
                    "IPPrefixLen": 0,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "",
                    "DriverOpts": null
                }
            }
        }
    }
]

您使用的是什么版本的Go,您的目标是
GOOS=darwin GOARCH=arm64
?@Adrian我使用的是Go 1.16.3,我已经用Go build命令更新了这个问题,谢谢。这表明应用程序中可能存在错误。您可能希望尝试使用shell运行容器并从中运行命令,以尝试获得更多输出。@BMitch它在我的旧Macbook fine上运行,并且在ECS中运行,因此我认为它在Go应用程序本身中没有任何意义。@pocockn仅仅因为它在不同的OS/arch上运行并不意味着它在应用程序中没有问题-您可以这样做使用构建约束调用代码,对于特定的OS/arch组合,这些约束可能具有不同的行为或缺少/stub实现。