Skip to content

[ARM32] qemu: Unsupported syscall: 389 when running console app in Docker #8614

@MichaelSimons

Description

@MichaelSimons

While testing the new arm32v7 Docker images for .NET Core I'm seeing qemu: Unsupported syscall: 389 written to the output whenever I run a console application in an arm Docker container on a Windows 10 machine. I don't see this if I run the same Docker image on a physical arm32 device (e.g. raspberry pi).

Steps to reproduce

  1. From a Windows 10 machine with Docker installed (Docker version 17.06.0-ce, build 02c1d87)
  2. Create a new console app - dotnet new console
  3. Add the following Dockerfile to your project
FROM microsoft/dotnet-nightly:2.0-sdk AS build-env
WORKDIR /app

# copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore

# copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out

# build runtime image
FROM msimons/dotnet-nightly:2-runtime-stretch-arm32v7
WORKDIR /app
COPY --from=build-env /app/out ./
ENTRYPOINT ["dotnet", "arm.dll"]

Note: The Dockerfile for msimons/dotnet-nightly:2-runtime-stretch-arm32v7 is contained in dotnet/dotnet-docker-nightly#328
3. Run the following from your project dir docker build -t armapp .
4. Run the image docker run --rm armapp

Expected Output of App

Hello World!

Output of App

qemu: Unsupported syscall: 389
Hello World!

Notes

  1. The app's return code is 0
  2. I tried running the image with the --privileged and --security-opt="seccomp=unconfined" options but see no difference in behavior.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions