epics-containers/epics-base

RTEMS runtime is too big

Closed this issue · 4 comments

The linux runtime at 172MB is around the same size as the original pre RTEMS build.

But the RTEMS runtime comes in at nearly 3GB.

Because of static linking the runtime IOC need only contain a single executable binary.

Immediate job - don't copy the kernel.
Longer term - only copy the ioc binary - not the epics tree

Updated title.
I was wrong. This version of epics-base docker pull ghcr.io/epics-containers/epics-base-linux-runtime@sha256:cfbd01522053287266023bff8eea5beca08e270d9578b4ec33d4a18216b5fd5b was only 103MB.

the old image:

root@6d734d45130b:/# du -hd1 2>/dev/null
0       ./tmp
0       ./mnt
0       ./media
76K     ./run
76M     ./usr
0       ./proc
0       ./boot
0       ./srv
0       ./dev
0       ./home
5.0M    ./var
24M     ./repos
464K    ./etc
0       ./opt
8.0K    ./root
0       ./sys
105M    .

The new image:


root@18458e6a82ec:/# du -hd1 2>/dev/null
0       ./tmp
0       ./mnt
0       ./media
101M    ./usr
76K     ./run
0       ./proc
0       ./boot
0       ./srv
0       ./dev
0       ./home
5.5M    ./var
28M     ./repos
544K    ./etc
41M     ./venv
0       ./opt
8.0K    ./root
0       ./sys
175M    .

NOTE: 41M is the venv which is needed for ibek.

BUT we could just install in system python

Rest of the difference is mainly /usr (of course that is for all the extra tooling in apt installs)

This is pretty much resolved in the latest re-work of the RTEMS build.