diff --git a/docs/blog/2022/march/06-03-2022.md b/docs/blog/2022/march/06-03-2022.md new file mode 100644 index 00000000000..88c99662841 --- /dev/null +++ b/docs/blog/2022/march/06-03-2022.md @@ -0,0 +1,35 @@ +# Docker-Compose on TrueNAS SCALE using TrueCharts + +From the early stages of TrueNAS SCALE development, we’ve read many complaints about the fact docker-compose wasn’t supported by TrueNAS SCALE. It’s understandable, as it’s one of the most used docker deployment options for home users. + +The TrueNAS SCALE community has figured out interesting ways to enable Docker-Compose. But this approaches all have a number of downsides: + +- It's not future proof, it can be nuked permanently and without warning, with any TrueNAS SCALE update. + +- It inherently breaks SCALE Applications and often even requires those to be disabled. + +- There is no support for this work-around. + +To solve this problem, we’ve decided to take matters into our own hands. We are glad to finally announce our solution: + +**Docker-Compose Application for TrueNAS SCALE by TrueCharts** + +It’s designed from the ground up, to give users nearly the same experience as running Docker-Compose on the host system, and even contains some nice tweaks: + +- It’s fully backed by TrueNAS SCALE Applications, so it will survive updates. + +- There is a GUI option to input your Docker-Compose file, that will survive reboots. + +- Completely self-contained, and will not modify the default docker stack. + +- Fully compatible to run alongside other TrueNAS SCALE Applications, so you can easily migrate your Docker-Compose applications to TrueNAS SCALE Applications. + +- We are your support if the application does not work as advertised. + +All with just one caveat: + +- The Docker-Compose command has to be executed from inside the container shell. + +We based our solution on the official Docker-in-Docker container by Docker, with some added tooling to optimize it for single-container deployments. Perhaps most interestingly, the container has native access to `/mnt`, `/root` and `/cluster`, so you can work with your containers like you’re working on the host. + +With this in place we hope that TrueNAS SCALE can finally start to fill the big shoes of solutions like Unraid and TrueNAS Core and give the community what they want, not just what they need! diff --git a/docs/blog/index.md b/docs/blog/index.md index 11bd4eec92d..81b5a2ccdb3 100644 --- a/docs/blog/index.md +++ b/docs/blog/index.md @@ -3,14 +3,38 @@ --- ## Last Post: -### Introducing: TrueCharts Container Repository +### Docker-Compose on TrueNAS SCALE using TrueCharts -The last year we’ve grown at an ever-increasing pace, doubling code and users every few months. Some issues could be fixed quickly and easily, while other issues were vastly more complex. One of those issues happened to be the convoluted mess of different container sources. +From the early stages of TrueNAS SCALE development, we’ve read many complaints about the fact docker-compose wasn’t supported by TrueNAS SCALE. It’s understandable, as it’s one of the most used docker deployment options for home users. -These container sources all had different tag formats, rate limits, downtimes, and one even decided to start deleting tags, leading to applications breaking. This, obviously, was not the experience we wanted our users to have. +The TrueNAS SCALE community has figured out interesting ways to enable Docker-Compose. But this approaches all have a number of downsides: -Therefore, we’ve spent the better part of December setting up our own container distribution system. The TrueCharts Container Repository, or TCCR in short. TCCR is a combination of containers we’ve fully built ourselves and containers we mirror, screen and re-tag into a standardized format. Doing this also allowed us to ensure *all* containers are available from multiple sources: GHCR, Quay and Dockerhub. +- It's not future proof, it can be nuked permanently and without warning, with any TrueNAS SCALE update. -To achieve this, we’ve partnered with scarf.sh, which allows us to easily switch between container sources for our repository, while also giving us something new: metrics. We can finally see which containers are popular and which are not, but we can also see if there are people still using older versions of applications. This allows us to improve our decision-making process: which apps to work on and which older versions to keep supporting. +- It inherently breaks SCALE Applications and often even requires those to be disabled. -All of you have (under the hood), already been running TCCR and we’ve only had a handful of issues related to it. We’re happy to have created something that again, highlights us as the number 1 source for TrueNAS SCALE Applications. +- There is no support for this work-around. + +To solve this problem, we’ve decided to take matters into our own hands. We are glad to finally announce our solution: + +**Docker-Compose Application for TrueNAS SCALE by TrueCharts** + +It’s designed from the ground up, to give users nearly the same experience as running Docker-Compose on the host system, and even contains some nice tweaks: + +- It’s fully backed by TrueNAS SCALE Applications, so it will survive updates. + +- There is a GUI option to input your Docker-Compose file, that will survive reboots. + +- Completely self-contained, and will not modify the default docker stack. + +- Fully compatible to run alongside other TrueNAS SCALE Applications, so you can easily migrate your Docker-Compose applications to TrueNAS SCALE Applications. + +- We are your support if the application does not work as advertised. + +All with just one caveat: + +- The Docker-Compose command has to be executed from inside the container shell. + +We based our solution on the official Docker-in-Docker container by Docker, with some added tooling to optimize it for single-container deployments. Perhaps most interestingly, the container has native access to `/mnt`, `/root` and `/cluster`, so you can work with your containers like you’re working on the host. + +With this in place we hope that TrueNAS SCALE can finally start to fill the big shoes of solutions like Unraid and TrueNAS Core and give the community what they want, not just what they need! diff --git a/docs/manual/Quick-Start Guides/13-docker-compose.md b/docs/manual/Quick-Start Guides/13-docker-compose.md new file mode 100644 index 00000000000..e0dbdf00785 --- /dev/null +++ b/docs/manual/Quick-Start Guides/13-docker-compose.md @@ -0,0 +1,40 @@ +# 13 - Docker-Compose on SCALE + +While Docker-Compose is not officially supported by iX Systems, we have designed a special "Docker-Compose" App, that is available in the "core" train. +This App can be used to easily deploy a compose file in a completely isolated docker-compose environment. + +Our Docker-Compose app has the following features: + +- Binding ports to the host, directly from docker-compose + +- Internal Docker-Compose networks + +- `/mnt`, `/root` and `/mnt` are directly accessable inside the Docker-Compose container by default + +- The docker-images and docker volumes, are saved in a special PVC inside the Apps system of TrueNAS SCALE + +- Compose files can be automatically loaded on the start of our Docker-Compose App + +- Will fully survive updates of TrueNAS SCALE + +- Will not alter the Host OS + +- Can be combined with SCALE App, to enable users to slowly migrate from docker-compose to native SCALE Apps + + +A few things to be aware of: + +- To issue commands to docker or docker compose, you need to be inside the Docker-Compose App shell (not the host Shell) + +- Please ensure your Docker-Compose networks do not conflict with the Kubernetes networks listed in the settings of the SCALE Apps system. + +- Please be aware that Docker-Compose containers, by cannot reach inside the kubernetes network. So you cannot combine a "Launch Docker" container with a Docker-Compose hosted database for example. + +Simply put: +Our docker-compose solution works almost like using it on the host, but without compromising the Appliance OS that is TrueNAS SCALE. + +#### Video Guide + +TBD + +##### Additional Documentation diff --git a/docs/manual/Quick-Start Guides/13-migrate from docker-compose.md b/docs/manual/Quick-Start Guides/13-migrate from docker-compose.md deleted file mode 100644 index 73d1eb7642d..00000000000 --- a/docs/manual/Quick-Start Guides/13-migrate from docker-compose.md +++ /dev/null @@ -1,8 +0,0 @@ -# 13 - Migrate from Docker-Compose - - -#### Video Guide - -TBD - -##### Additional Documentation