2017-08-22, 10:47
Hello, i wan to compile Kodi from Source in alpine in docker container.
Here is my Dockerfile:
https://pastebin.com/DvAP6aUF
I know its messy, but it is a test.
It fails to:
I want to run Kodi as:
sudo docker run -it --env="DISPLAY=:0" --name=kodi --hostname=kodi --user=root --volume="/tmp/test:/home/$USER" --volume="/etc/group:/etc/group:ro" --device="/dev/dri/card0" --device="/dev/snd" --volume="/etc/passwd:/etc/passwd:ro" --volume="/etc/shadow:/etc/shadow:ro" --volume="/etc/sudoers.d:/etc/sudoers.d:ro" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" kodi
Will it even work in Docker container ? Or its nonsens and its better to run it on standalone host?
Thanks
Here is my Dockerfile:
https://pastebin.com/DvAP6aUF
I know its messy, but it is a test.
It fails to:
Code:
Step 13/14 : RUN cd /tmp/src/kodi && make && make install
---> Running in 4cb3cc7f22a0
CPP xbmc/cores/DllLoader/exports/emu_dummy.o
CPP xbmc/cores/DllLoader/exports/emu_kernel32.o
CPP xbmc/cores/DllLoader/exports/emu_msvcrt.o
In file included from emu_msvcrt.cpp:67:0:
emu_msvcrt.h:93:3: error: '__off64_t' does not name a type
__off64_t dll_lseeki64(int fd, __off64_t lPos, int iWhence);
^~~~~~~~~
emu_msvcrt.h:94:3: error: '__off_t' does not name a type
__off_t dll_lseek(int fd, __off_t lPos, int iWhence);
^~~~~~~
In file included from emu_msvcrt.cpp:70:0:
util/EmuFileWrapper.h:50:11: error: field 'file_emu' has incomplete type 'FILE {aka _IO_FILE}'
FILE file_emu;
^~~~~~~~
In file included from /usr/include/stdio.h:22:0,
from /usr/include/fortify/stdio.h:20,
from emu_msvcrt.cpp:22:
/usr/include/bits/alltypes.h:356:16: note: forward declaration of 'FILE {aka struct _IO_FILE}'
typedef struct _IO_FILE FILE;
^~~~~~~~
emu_msvcrt.cpp:668:3: error: '__off64_t' does not name a type
__off64_t dll_lseeki64(int fd, __off64_t lPos, int iWhence)
^~~~~~~~~
emu_msvcrt.cpp:688:3: error: '__off_t' does not name a type
__off_t dll_lseek(int fd, __off_t lPos, int iWhence)
^~~~~~~
emu_msvcrt.cpp: In function 'void dll_rewind(FILE*)':
emu_msvcrt.cpp:709:35: error: 'dll_lseeki64' was not declared in this scope
dll_lseeki64(fd, 0, SEEK_SET);
^
emu_msvcrt.cpp: In function 'FILE* dll_fopen(const char*, const char*)':
emu_msvcrt.cpp:1218:26: error: 'MNTTAB' was not declared in this scope
|| strcmp(filename, MNTTAB) == 0)
^~~~~~
emu_msvcrt.cpp: In function 'int dll_fseek64(FILE*, off_t, int)':
emu_msvcrt.cpp:1326:42: error: 'dll_lseeki64' was not declared in this scope
if (dll_lseeki64(fd, offset, origin) != -1)
^
emu_msvcrt.cpp: In function 'int dll_fgetpos(FILE*, fpos_t*)':
emu_msvcrt.cpp:1628:10: error: 'fpos_t {aka union _G_fpos64_t}' has no member named '__pos'
pos->__pos = (off_t)tmpPos.__pos;
^~~~~
emu_msvcrt.cpp:1628:32: error: 'fpos_t {aka union _G_fpos64_t}' has no member named '__pos'
pos->__pos = (off_t)tmpPos.__pos;
^~~~~
emu_msvcrt.cpp: In function 'int dll_fgetpos64(FILE*, fpos_t*)':
emu_msvcrt.cpp:1641:12: error: 'fpos_t {aka union _G_fpos64_t}' has no member named '__pos'
pos->__pos = pFile->GetPosition();
^~~~~
emu_msvcrt.cpp: In function 'int dll_fsetpos64(FILE*, const fpos_t*)':
emu_msvcrt.cpp:1663:29: error: '__off64_t' was not declared in this scope
if (dll_lseeki64(fd, (__off64_t)pos->__pos, SEEK_SET) >= 0)
^~~~~~~~~
emu_msvcrt.cpp:1663:59: error: 'dll_lseeki64' was not declared in this scope
if (dll_lseeki64(fd, (__off64_t)pos->__pos, SEEK_SET) >= 0)
^
emu_msvcrt.cpp: In function 'int dll_fsetpos(FILE*, const fpos_t*)':
emu_msvcrt.cpp:1696:14: error: 'fpos_t {aka union _G_fpos64_t}' has no member named '__pos'
tmpPos.__pos = (off64_t)(pos->__pos);
^~~~~
emu_msvcrt.cpp:1696:37: error: 'const fpos_t {aka const union _G_fpos64_t}' has no member named '__pos'
tmpPos.__pos = (off64_t)(pos->__pos);
^~~~~
make[1]: *** [/tmp/src/kodi/Makefile.include:98: emu_msvcrt.o] Error 1
make: *** [Makefile:436: xbmc/cores/DllLoader/exports/exports.a] Error 2
I want to run Kodi as:
sudo docker run -it --env="DISPLAY=:0" --name=kodi --hostname=kodi --user=root --volume="/tmp/test:/home/$USER" --volume="/etc/group:/etc/group:ro" --device="/dev/dri/card0" --device="/dev/snd" --volume="/etc/passwd:/etc/passwd:ro" --volume="/etc/shadow:/etc/shadow:ro" --volume="/etc/sudoers.d:/etc/sudoers.d:ro" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" kodi
Will it even work in Docker container ? Or its nonsens and its better to run it on standalone host?
Thanks