aaronsmith93 Posted March 30, 2023 Share Posted March 30, 2023 Hey everyone! I'm super excited to share with you a project I've been working on called Houdini-Docker; An open-source automation utility designed to make containerizing Houdini simple & easy. Here's why you might want to check out Houdini-Docker: - It provides an alternative to the current standard workflow, which involves manual installation and Dockerfile configuration. - It offers a trustworthy source of Houdini installation images for those who need security, on Docker Hub; As all workflow runs are publicly visible for transparency. - Images generated by Houdini-Docker are approximately 65% smaller than the most popular Houdini installation images, saving storage space and improving deployment speed. - Keep up-to-date with the latest production builds within future Dockerfiles, without the need for executing pipeline scripts. - Daily checks for the latest production builds, so new builds will always be available on Docker Hub within 24 hours. All standard base images come with a full Houdini installation built on Debian 11 slim. The PATH environment variable is set for easy access to processes such as hython and hserver. Quick-Start: To get started with the most recent production build, just execute the following: (requires a Docker installation) 1. Pull the latest production build image (19.5.569-base as of 30/03/2023) docker pull aaronsmithtv/hbuild:latest 2. Run a temporary container from the pulled image docker run -it --rm --name houdini-container aaronsmithtv/hbuild:latest 3. Start a sesinetd instance (The command line Houdini license server), and verify that you have license entitlements with sesictrl (The command line equivalent of HKey) sesinetd sesictrl redeem You should receive a prompt to enter your SideFX account credentials, and upon logging in, a list of license entitlements. Type q to quit the license utility and exit to close the container. If you have specific requirements, such as another Linux distro, or you have more granular requirements for packages, builds, etc, simply forking the repository will enable the auto-build GitHub actions workflow to work with whatever additions you make. I want to use Houdini-Docker, but I don't know what for! Many studios will likely have their own CICD workflows that implement similar processes - but for those who are undergoing the task of deploying Houdini in some way, for example to a cloud platform, or as a license sever, it can be difficult to maintain a tool such as this (especially when many products are being juggled). Houdini-Docker aims to alleviate the difficulties in automating a highly customizable Houdini build process using Docker, while Hbuild is a repository for pre-built Houdini installation images based on Debian. Here are some ideas for projects you can try out using a Houdini-Docker image: - A non-graphical Houdini instance as a web server using hwebserver - A containerized license utility - A containerized hqueue client I'd love to hear your thoughts, feedback, and any ideas you might have. If you need any specific builds just let me know, and I'll add them to the Docker Hub repository. PRs and issues on GitHub are totally welcome! You can find Houdini-Docker on GitHub here: https://github.com/aaronsmithtv/hbuild You can find the image repository Hbuild here: https://hub.docker.com/r/aaronsmithtv/hbuild 2 Quote Link to comment Share on other sites More sharing options...
aaronsmith93 Posted April 3, 2023 Author Share Posted April 3, 2023 (edited) For anyone interested, I have also open sourced and added the Python driver I use for accessing the SideFX Web API, sesiweb 0.1.0, to pypi. Import it into your scene by doing the following: pip install --upgrade sesiweb And then import the session class as follows: from sesiweb import SesiWeb You can find more information in the sesiweb GitHub README, but if anyone wants to start quickly, here is a similar script to what I use in Houdini-Docker, using sesiweb from sesiweb import SesiWeb from sesiweb.model.service import ProductBuild sesi_secret = "your_secret_key" sesi_id = "your_client_id" sw = SesiWeb(sesi_secret, sesi_id) # Get the most recent Houdini product builds build = {"product": "houdini", "platform": "linux"} # Get the latest Houdini build build = sw.get_latest_build(prodinfo=build, only_production=False) # Get the download URL, filename and hash of the build build_dl = sw.get_build_download( prodinfo=ProductBuild(**build.dict()) print(build_dl) sesiweb has full typehint support, input validation using Pydantic, custom exceptions and class test coverage. Enjoy! Edited April 3, 2023 by aaronsmith93 Quote Link to comment Share on other sites More sharing options...
Jasnergadan Posted April 8 Share Posted April 8 Wow, Houdini-Docker sounds like a game-changer for simplifying Houdini containerization! The benefits you mentioned, especially the reduction in image size and the ease of staying updated with production builds, are impressive. It seems like a valuable tool for studios and individuals alike. Great job on the detailed explanation and quick-start guide! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.