[Mono-list] libmono-2-0.a in libmono-dev CentOS package?

Eugene Kobrinsky cue at integrate.com
Thu Feb 18 21:08:39 UTC 2016


So glad someone responded! 

Good question. We are using Docker to run a microservices architecture for our app. As such, we are dealing with a lot of docker containers, each running a very small mono app (service). 

Right now we have a full blown CentOS instance and mono runtime in each container, which bloats the container size to 160mb+. Our goal is to run a small container with minimal OS (options: BusyBox or Alpine https://github.com/gliderlabs/docker-alpine) which would bring down our container size to 20mb-40mb. 

Installing mono-runtime on these micro containers is a pain, and bloats them by the time all the dependencies get added. Ideally, we build our executable (with mono statically embedded) on our primary dev instance (CentOS) and drop it inside the container. 

Here is an example of a guy doing it, except he makes the static bundle on Debian http://www.onegeek.com.au/articles/a-nancy-net-microservice-running-on-docker-in-under-20mb.

Is the mono package mailing list more appropriate for this question? It seems like an oversite given there is a tool (mkbundle) that uses those static libraries. 

Thanks,

Eugene

-----Original Message-----
From: mono-list-bounces at lists.ximian.com [mailto:mono-list-bounces at lists.ximian.com] On Behalf Of Timotheus Pokorra
Sent: Thursday, February 18, 2016 12:40 AM
To: mono-list at lists.ximian.com
Subject: Re: [Mono-list] libmono-2-0.a in libmono-dev CentOS package?

Hello Eugene,

> The static mono library (libmono-2.0.a) doesn’t appear in any package 
> on the official mono CentOS (download.mono-project.com/repo/centos). 
> This prevents us from using mkbundle –static in our CentOS 
> environments. Is this on purpose or are we just missing something? 
> Also, what’s the recommended work around other than switching to Debian or Ubuntu?

see the source of the rpm file:
https://github.com/mono/linux-packaging-mono/blob/centos/mono-core.spec#L189

# remove .a files for libraries that are really only for us rm -f %{buildroot}%{_libdir}/libMonoPosixHelper.a
rm -f %{buildroot}%{_libdir}/libikvm-native.a
rm -f %{buildroot}%{_libdir}/libmono-llvm.a
rm -f %{buildroot}%{_libdir}/libmono-2.0.a
rm -f %{buildroot}%{_libdir}/libmonoboehm-2.0.a
rm -f %{buildroot}%{_libdir}/libmonosgen-2.0.a

I just checked, we do the same for the Mono packages for Fedora:
http://pkgs.fedoraproject.org/cgit/rpms/mono.git/tree/mono.spec#n316

I have not used mkbundle before, and I don't know what "libraries that are really only for us" means.

Would it not be better to just require a dependancy on Mono in your application instead of using mkbundle?

All the best,
  Timotheus
_______________________________________________
Mono-list maillist  -  Mono-list at lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-list


More information about the Mono-list mailing list