Skip to content
This repository has been archived by the owner on Nov 23, 2019. It is now read-only.

Support Alpine linux #23

Open
natemcmaster opened this issue Jan 8, 2018 · 17 comments
Open

Support Alpine linux #23

natemcmaster opened this issue Jan 8, 2018 · 17 comments
Milestone

Comments

@natemcmaster
Copy link

natemcmaster commented Jan 8, 2018

Requires compiling for musl, not glibc.

Workaround
Users can remove libuv from their app and rely on the system's installed version of libuv instead.

<ItemGroup>
  <PackageReference Include="Libuv" Version="1.10.0" ExcludeAssets="Native" />
</ItemGroup>

Then, install libuv on host machines.

apk add libuv
ln -s /usr/lib/libuv.so.1 /usr/lib/libuv.so
@muratg
Copy link

muratg commented Jan 8, 2018

cc @glennc

@Petermarcu
Copy link

Can you flip back to using sockets to unblock temporarily?

@natemcmaster
Copy link
Author

At the moment, Kestrel's default is still sockets in 2.1 preview1 bits. This default is subject to change before RTM. aspnet/KestrelHttpServer#2220

@Petermarcu
Copy link

Is see, I haven't seen the error for Alpine but what is blocking then? Is it that tests are failing on Alpine because they are explicitly running on libuv?

@natemcmaster
Copy link
Author

Right. When I say it's a blocker, I mean blocking moving forward with Alpine in a supported way. We can disable tests, and produce a shared framework is broken for several key scenarios on Alpine...but I wouldn't want to ship that.

@Petermarcu
Copy link

Petermarcu commented Jan 9, 2018

We need to unblock product construction first. Alpine is already noted as a best effort OS and not in our supported list. Could you just disable the tests on Alpine? I also thought tests were not critical path for product construction

@natemcmaster
Copy link
Author

Yes we can do those things. I updated my PR to the CLI last night to skip tests and pull our portable sharedfx even though it won't work. dotnet/cli#8341

@Petermarcu
Copy link

Sounds good. Thanks! Hopefully Alpine will be off the blocking list then.

@natemcmaster
Copy link
Author

Punting to backlog as we want to make sockets the default transport in Kestrel. Users could workaround for now by installing the libuv apk.

@natemcmaster natemcmaster removed their assignment Mar 3, 2018
@natemcmaster natemcmaster modified the milestones: 2.1.0-preview2, 2.2.0 Mar 3, 2018
@Petermarcu
Copy link

Did we make the call on switching to Sockets as the default for Kestrel? Can we drop the libuv package from the nuget dependency graph too?

@natemcmaster
Copy link
Author

natemcmaster commented Mar 3, 2018 via email

@natemcmaster
Copy link
Author

@Petermarcu
Copy link

Do you want to support the All package and libuv transport on Alpine? If so, wouldn't you still need this issue?

@natemcmaster
Copy link
Author

@muratg we should still probably consider this. Although you can workaround it with a globally installed libuv, it's not always easy to get that setup correctly.

@ghost
Copy link

ghost commented Apr 1, 2018

@Petermarcu, @natemcmaster, I have built libuv binary on Alpine Linux with aspnet/libuv-build#34. Can this be shipped with 2.1? We can also build libuv for arm32 to match the dotnet-core supported platform matrix: aspnet/Universe#554.

@natemcmaster
Copy link
Author

We are currently not planning on re-building the Libuv package to support Alpine in 2.1. However, we are still planning to enable ASP.NET Core for Alpine (already available in nightly builds, see https://hub.docker.com/r/microsoft/dotnet-nightly.) In 2.1, Kestrel will no longer rely on Libuv by default, so this issue isn't essential to getting ASP.NET Core + Alpine working.

We don't have plans to support arm32 in ASP.NET Core, at the moment.

@muratg muratg modified the milestones: 2.2.0, 3.0.0 Oct 22, 2018
@muratg
Copy link

muratg commented Oct 22, 2018

Moved this to 3.0.0

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants