Jump to content
XPEnology Community

Xpenology runing on docker


segator

Recommended Posts

Yes exactly is what you are thinking!! But there are some traps

 

Yes we can run xpenology on docker fully functional but inside a KVM VM but works pretty fine really.

Right now what I have is a simple docker that execute an instance of xpenology (clean, so the page of installation is shown to install)

I thinking which features do you think could be interesting for you?

give support to docker volumes inside the xpenology?

-v /myhost/data:/Volume1/myshare ?
Please let me know what do you think could be interesting for you.

 

when I have a more stable version I will publish to github for all of you.

The image is based in an image a Did for my work (W2012 inside docker) but I reused to use for xpenology

 

I Did the image because I wanted pretty UI of xpenology + Unraid Disk management(almost always spin down the HDD)

You can share your unraid data using NFS/glusterFS and (if someone add 9p virtio driver to the synoboot image) 9p

 

 

Edited by segator
  • Like 5
Link to comment
Share on other sites

  • 2 months later...
  • 2 months later...
On 8/31/2017 at 2:48 AM, segator said:

Yes exactly is what you are thinking!! But there are some traps

 

Yes we can run xpenology on docker fully functional but inside a KVM VM but works pretty fine really.

Right now what I have is a simple docker that execute an instance of xpenology (clean, so the page of installation is shown to install)

I thinking which features do you think could be interesting for you?

give support to docker volumes inside the xpenology?

-v /myhost/data:/Volume1/myshare ?
Please let me know what do you think could be interesting for you.

 

when I have a more stable version I will publish to github for all of you.

The image is based in an image a Did for my work (W2012 inside docker) but I reused to use for xpenology

 

I Did the image because I wanted pretty UI of xpenology + Unraid Disk management(almost always spin down the HDD)

You can share your unraid data using NFS/glusterFS and (if someone add 9p virtio driver to the synoboot image) 9p

 

 

That sound excellent.

 

I'm running  Proxmox on Gen8 and create zfs as data pool, if xpenology can run in LXC container, that will good to avoid create VM.

Could you to share your code in github?

 

Link to comment
Share on other sites

On 8/31/2017 at 2:48 AM, segator said:

Yes exactly is what you are thinking!! But there are some traps

 

Yes we can run xpenology on docker fully functional but inside a KVM VM but works pretty fine really.

Right now what I have is a simple docker that execute an instance of xpenology (clean, so the page of installation is shown to install)

I thinking which features do you think could be interesting for you?

give support to docker volumes inside the xpenology?

-v /myhost/data:/Volume1/myshare ?
Please let me know what do you think could be interesting for you.

 

when I have a more stable version I will publish to github for all of you.

The image is based in an image a Did for my work (W2012 inside docker) but I reused to use for xpenology

 

I Did the image because I wanted pretty UI of xpenology + Unraid Disk management(almost always spin down the HDD)

You can share your unraid data using NFS/glusterFS and (if someone add 9p virtio driver to the synoboot image) 9p

 

 

 

 

Hi Segator,

 

I search in github, and I guess this should what you mentioned?

https://github.com/segator/xpenology-docker 

Link to comment
Share on other sites

1 hour ago, laris said:

That sound excellent.

 

I'm running  Proxmox on Gen8 and create zfs as data pool, if xpenology can run in LXC container, that will good to avoid create VM.

Could you to share your code in github?

 

6
9

 

Quote

I think you don't understand how works, this docker run internally a KVM VM with xpenology so it doesn't have any sense for you use a LXC container with KVM inside if you are already using proxmox KVM VM's

3

 

Edited by segator
Link to comment
Share on other sites

  • 1 month later...
  • 6 months later...

Hi @segator

 

Did you test the latest junboot 103b for DSM 62?

I complied the 9p kernel module but failed to mount host shared dir in proxmox.

And also some virtio Unknown symbol dmesg error

 

root@DSMPVE:/sys/class# dmesg|grep virtio
[   11.462819] virtio_pci: Unknown symbol vring_transport_features (err 0)
[   11.462831] virtio_pci: Unknown symbol vring_interrupt (err 0)
[   11.462837] virtio_pci: Unknown symbol vring_new_virtqueue (err 0)
[   11.462848] virtio_pci: Unknown symbol vring_del_virtqueue (err 0)
[   11.464985] virtio_mmio: Unknown symbol vring_transport_features (err 0)
[   11.464996] virtio_mmio: Unknown symbol vring_interrupt (err 0)
[   11.465004] virtio_mmio: Unknown symbol vring_new_virtqueue (err 0)
[   11.465039] virtio_mmio: Unknown symbol vring_del_virtqueue (err 0)
[   11.467112] virtio_balloon: Unknown symbol virtqueue_get_buf (err 0)
[   11.467118] virtio_balloon: Unknown symbol virtqueue_add_outbuf (err 0)
[   11.467124] virtio_balloon: Unknown symbol virtqueue_kick (err 0)
[   11.467133] virtio_balloon: Unknown symbol balloon_mapping_alloc (err 0)
[   11.469214] virtio_net: Unknown symbol virtqueue_enable_cb_prepare (err 0)
[   11.469221] virtio_net: Unknown symbol virtqueue_detach_unused_buf (err 0)
[   11.469226] virtio_net: Unknown symbol virtqueue_poll (err 0)
[   11.469243] virtio_net: Unknown symbol virtqueue_get_vring_size (err 0)
[   11.469250] virtio_net: Unknown symbol virtqueue_disable_cb (err 0)
[   11.469257] virtio_net: Unknown symbol virtqueue_add_sgs (err 0)
[   11.469263] virtio_net: Unknown symbol virtqueue_get_buf (err 0)
[   11.469268] virtio_net: Unknown symbol virtqueue_add_outbuf (err 0)
[   11.469274] virtio_net: Unknown symbol virtqueue_kick (err 0)
[   11.469280] virtio_net: Unknown symbol virtqueue_add_inbuf (err 0)
[   11.469287] virtio_net: Unknown symbol virtqueue_enable_cb_delayed (err 0)
[  331.115294] 9pnet_virtio: no channels available


   11.473865] 9pnet: Installing 9P2000 support
[   11.478168] 9p: Installing v9fs 9p2000 file system support

 

Link to comment
Share on other sites

I solved.

 

adjust the kernel module load sequence like here:
 

EXTRA_MODULES="mii mdio libphy atl1 atl1e atl1c alx uio ipg jme skge sky2 ptp_pch pch_gbe qla3xxx qlcnic qlge netxen_nic sfc e1000 pcnet32 vmxnet3 bnx2 libcrc32c bnx2x cnic e1000e igb ixgbe r8101 r8168 r8169 tg3 usbnet ax88179_178a button evdev ohci-hcd 



virtio virtio_ring virtio_pci virtio_mmio virtio_balloon virtio_net virtio_blk virtio_scsi virtio_console 9pnet 9pnet_virtio fscache 9p aufs"

 

but still have some issue with other modules

root@DSMPVE:~# dmesg|grep virtio
[   14.131531] virtio-pci 0000:00:11.0: setting latency timer to 64
[   14.136262] virtio_balloon: Unknown symbol balloon_mapping_alloc (err 0)
[   14.145472] virtio_console: Unknown symbol hvc_remove (err 0)
[   14.145487] virtio_console: Unknown symbol hvc_kick (err 0)
[   14.145495] virtio_console: Unknown symbol hvc_alloc (err 0)
[   14.145503] virtio_console: Unknown symbol hvc_poll (err 0)
[   14.145513] virtio_console: Unknown symbol hvc_instantiate (err 0)
[   14.145521] virtio_console: Unknown symbol __hvc_resize (err 0)
[   14.150363] virtio-pci 0000:00:11.0: irq 44 for MSI/MSI-X
[   14.150382] virtio-pci 0000:00:11.0: irq 45 for MSI/MSI-X

 

Link to comment
Share on other sites

  • 8 months later...
  • 5 months later...
  • 5 months later...
  • 4 months later...

i found the github https://github.com/segator/xpenology-docker

and the docker image https://hub.docker.com/r/segator/xpenology

i'm looking for version 6.2.3 of this :)

tryed to make mine but without success..


with this docker-compose, it work perfectly but in 6.0.2 ..

Citation

version: '3'

services:
  Xpenology:
    image: "segator/xpenology:latest"
    stdin_open: true # docker run -i
    tty: true        # docker run -t
    container_name: Xpenology
    restart: always
    volumes:
      - /home/docker/xpenology/data:/image

    port:

      - 5000:5000
    environment:
      - THREADS=1
      - CORES=2
      - MEMORY=2048
      - DISK_SIZE=20G
      - AUTO_ATTACH=Y
    privileged: true

 

Edited by Cosaque
Link to comment
Share on other sites

  • 1 month later...

For those, who still are interested in running a Xpenology on a Docker ... I have forked and updated this project to make it works with dsm 6.2.3.


Here is the link:
- to the source project: https://github.com/uxora-com/xpenology-docker
- to the docker hub image : https://hub.docker.com/r/uxora/xpenology

And last, here is the link to the bootloader with virtio loaded at boot : https://gofile.io/d/bym4Cc
Note that "download" url in webpage on this link can be used as BOOTLOADER_URL once it has been generated by clicking on the link.

Instruction:
- Install Docker
- Then run:

$ docker run --privileged \
	-p 5000:5000 -p 5001:5001 -p 2222:22 -p 8080:80 \
	-e RAM=512 \
	-e DISK_SIZE="32G" \
	-e BOOTLOADER_URL="http://example.com/path/synoboot.img" \
	-e BOOTLOADER_AS_USB="Y" \
	-e VM_ENABLE_VIRTIO="Y" \
	uxora/xpenology



Let me know if it works (or not) for you.

Link to comment
Share on other sites

On 10/16/2020 at 11:58 AM, uxora-com said:

For those, who still are interested in running a Xpenology on a Docker ... I have forked and updated this project to make it works with dsm 6.2.3.


Here is the link:
- to the source project: https://github.com/uxora-com/xpenology-docker
- to the docker hub image : https://hub.docker.com/r/uxora/xpenology

And last, here is the link to the bootloader with virtio loaded at boot : https://gofile.io/d/bym4Cc
Note that "download" url in webpage on this link can be used as BOOTLOADER_URL once it has been generated by clicking on the link.

Instruction:
- Install Docker
- Then run:


$ docker run --privileged \
	-p 5000:5000 -p 5001:5001 -p 2222:22 -p 8080:80 \
	-e RAM=512 \
	-e DISK_SIZE="32G" \
	-e BOOTLOADER_URL="http://example.com/path/synoboot.img" \
	-e BOOTLOADER_AS_USB="Y" \
	-e VM_ENABLE_VIRTIO="Y" \
	uxora/xpenology



Let me know if it works (or not) for you.

 

This is awesome! Thanks for your work on this. It worked for me. Is there a way to make it work with 1.04b loader for DS918+?

Link to comment
Share on other sites

well ty for this !

this docker_compose work well !

 

version: '3.3'

services:
  Xpenology:
    image: "uxora/xpenology:latest"
    stdin_open: true # docker run -i
    tty: true        # docker run -t
    container_name: Xpenology
    restart: always
    volumes:
      - /home/docker/xpenology/data:/datashare
    ports:
      - '5000:5000'
    environment:
      - RAM=512
      - DISK_SIZE=32G
      - 'BOOTLOADER_URL=http://synoboot.linkhere.fr/synoboot_103b_ds3615xs_virtio_9p.img'
      - BOOTLOADER_AS_USB=Y
      - VM_ENABLE_VIRTIO=Y

 

Edited by Cosaque
Link to comment
Share on other sites

22 hours ago, ilovepancakes said:

 

This is awesome! Thanks for your work on this. It worked for me. Is there a way to make it work with 1.04b loader for DS918+?

 

 

Thank you for your feedback, can i ask you which hardware and os are you using ?
I haven't tried ds3617xs and ds918+ yet ... I will work on it when got some spare time.

 

19 hours ago, Cosaque said:

well ty for this !

this docker_compose work well !


Ok good, can i ask you which hardware and os are you using as well?
Thanks.

Link to comment
Share on other sites

21 hours ago, uxora-com said:

Thank you for your feedback, can i ask you which hardware and os are you using ?
I haven't tried ds3617xs and ds918+ yet ... I will work on it when got some spare time.

 

I am running docker on a VM with Alpine OS. The VM host is ESXi v7.0.0. Only issue I found so far was the first run of container had some error about something missing (don't remember the exact error) but when I restarted the container then it all loaded and worked fine. DSM installed with no issue.

 

Happy to test 3617xs and 918+ implementations when you have them, if that helps you.

Link to comment
Share on other sites

I found these bootloader, with virtio drivers loaded, that may work for you: 😀

 

- ds3617xs : https://gofile.io/d/pnBQbd

It does not work for me, it launch but stay block at "Loading module adt7475", don't know why.
But it does work directly as proxmox vm without docker.

 

-ds918+ : https://gofile.io/d/wfNCxt

It works for me in mxlinux usb live but it does not works on my proxmox VM or Lxc container.

For this bootloader, you need to specify the VM_MAC to docker as follow:

      -e VM_MAC="00:11:32:12:34:56"

 

You can give it a try if you want, if so ... then let me know how it goes for you.

Edited by uxora-com
Link to comment
Share on other sites

  • 2 months later...
On 10/21/2020 at 12:04 AM, uxora-com said:

I found these bootloader, with virtio drivers loaded, that may work for you:

 

Hey there! IG-88's driver extensions all have virtio and 9p drivers added (although not loaded by default, needs a modified /etc/rc.modules) but we can't make 9p work. I'm using UnRAID and the drivers seem to get loaded fine (no errors in dmesg, lsmod shows them loaded) but no devices appear in /sys/bus/virtio/drivers/... and trying to mount the UnRAID share using "mount -t 9p -o trans=virtio <mount_tag> </local/path>" results in an error in bash: "mount: special device unraid does not exist" and in dmesg:  "9pnet_virtio: no channels available".

 

Any pointers how you got it working?

Link to comment
Share on other sites

On 10/18/2020 at 12:34 AM, Cosaque said:

well ty for this !

this docker_compose work well !

 


version: '3.3'

services:
  Xpenology:
    image: "uxora/xpenology:latest"
    stdin_open: true # docker run -i
    tty: true        # docker run -t
    container_name: Xpenology
    restart: always
    volumes:
      - /home/docker/xpenology/data:/datashare
    ports:
      - '5000:5000'
    environment:
      - RAM=512
      - DISK_SIZE=32G
      - 'BOOTLOADER_URL=http://synoboot.linkhere.fr/synoboot_103b_ds3615xs_virtio_9p.img'
      - BOOTLOADER_AS_USB=Y
      - VM_ENABLE_VIRTIO=Y

 

 

I have this issue and no work docker xpenology

 

INFO: Start downloading bootloader from URL ...

ERROR: Bootloader cannot be downloaded from URL.

WARNING: /image/bootloader.raw file size does not seem correct for synoboot.

INFO: Bootloader has been converted to qcow2

INFO: No Initial Disk found, creating disk /image/vm-disk-1.qcow2

Formatting '/image/vm-disk-1.qcow2', fmt=qcow2 size=34359738368 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16

INFO: KVM acceleration enabled

INFO: Configuring network ...

add bridge failed: Operation not permitted

WARNING: /image/bootloader.raw file size does not seem correct for synoboot.

ERROR: No Initial Disk found, CANNOT create disk /image/vm-disk-1.qcow2

INFO: KVM acceleration enabled

Link to comment
Share on other sites

On 1/17/2021 at 9:29 PM, jesta said:

 

Hey there! IG-88's driver extensions all have virtio and 9p drivers added (although not loaded by default, needs a modified /etc/rc.modules) but we can't make 9p work. I'm using UnRAID and the drivers seem to get loaded fine (no errors in dmesg, lsmod shows them loaded) but no devices appear in /sys/bus/virtio/drivers/... and trying to mount the UnRAID share using "mount -t 9p -o trans=virtio <mount_tag> </local/path>" results in an error in bash: "mount: special device unraid does not exist" and in dmesg:  "9pnet_virtio: no channels available".

 

Any pointers how you got it working?


Read "Variables" and "Mount Docker Host Volumes to Xpenology" part of the documentation here: https://hub.docker.com/r/uxora/xpenology
In Docker, if you use default value of VM_PATH_9P (Default "/datashare") then you should use docker -v option like "-v /shared/data:/datashare".

In xpenology terminal, use :"$ sudo mount -t 9p -o trans=virtio,version=9p2000.L,msize=262144 hostdata /volume1/datashare".
HTH

Edited by uxora-com
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...