{"id":16651233,"url":"https://github.com/vvzen/openimageio-dockerized","last_synced_at":"2026-05-23T20:31:32.581Z","repository":{"id":197943979,"uuid":"699698550","full_name":"vvzen/openimageio-dockerized","owner":"vvzen","description":"Proof of concept for dockerizing the build of OpenImageIO starting from the aswf docker images","archived":false,"fork":false,"pushed_at":"2025-11-06T05:34:00.000Z","size":10,"stargazers_count":0,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-06T07:14:33.044Z","etag":null,"topics":["docker","dockerfile","openimageio"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vvzen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-03T06:52:02.000Z","updated_at":"2025-11-05T05:48:02.000Z","dependencies_parsed_at":"2024-11-18T09:21:54.759Z","dependency_job_id":null,"html_url":"https://github.com/vvzen/openimageio-dockerized","commit_stats":null,"previous_names":["vvzen/openimageio-dockerized"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vvzen/openimageio-dockerized","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvzen%2Fopenimageio-dockerized","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvzen%2Fopenimageio-dockerized/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvzen%2Fopenimageio-dockerized/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvzen%2Fopenimageio-dockerized/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vvzen","download_url":"https://codeload.github.com/vvzen/openimageio-dockerized/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvzen%2Fopenimageio-dockerized/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28007637,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-24T02:00:07.193Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","dockerfile","openimageio"],"created_at":"2024-10-12T09:24:16.618Z","updated_at":"2025-12-24T20:11:24.282Z","avatar_url":"https://github.com/vvzen.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# README\n\n## What problem does this repo solve\n\nSince OpenImageIO is written in C++, the task of compiling it correctly can prove to be very boring and error prone, so I have automated most of it through Docker.\n\n### Requirements\n\nIf you're on linux or macOS, most things should work.\nIf you're on Windows, I have no idea how to make it work.\n\nYou will only need to have `docker` installed and its service active and running (on systemd distros, you can check via `sudo systemctl status docker`, on macOS if you're using colima you'll just need a `colima start`).\nYou will also need to install `docker-buildx`, see: \u003chttps://docs.docker.com/go/buildx\u003e .\n\nBefore starting, download the tarballs containing all the dependencies needed to build OIIO:\n\n``` shell\nmake download\n```\n\nThe Dockerfile will currently copy the `tarballs` directory into the image in an effort to keep the build process free from the need to access the internet (as much as it's possible). \n\nIf everything went fine, you should have this:\n\n``` shell\n$ tree tarballs/\ntarballs/\n├── boost_1_81_0.tar.bz2\n├── libjpeg-turbo_v3.0.0.tar.gz\n├── LibRaw-0.21.1.tar.gz\n├── OpenEXR_v2.4.15.0.tar.gz\n├── OpenImageIO_v2.4.15.0.tar.gz\n├── OpenImageIO_v3.1.6.2.tar.gz\n├── OpenImageIO_v3.1.7.0.tar.gz\n├── tiff-4.0.10.tar.gz\n└── zlib-1.3.tar.gz\n\n1 directory, 9 files\n```\n\n### Running the build\n\nTo perform a build of OIIO, you can do something like this:\n``` shell\n# Run the dockerized build of OIIO (this might take a bit)\nmake build\n\n# Copy the final tarball containing the final dist (libs+binaries)\nmake export\n```\n\nThis will run the whole build process inside a Docker container and finally the copy the compiled bits back to your own filesystem.\nAll libraries and binaries are patched so that they are easily relocatable.\n\nThe final result will be a `oiio-dist.tar.gz` tarballs whose content looks like this:\n```bash\n$ tar -xvf oiio-dist.tar.gz\n$ tree dist -L 2\ndist\n├── bin\n│   ├── iconvert\n│   ├── idiff\n│   ├── igrep\n│   ├── iinfo\n│   ├── maketx\n│   ├── oiiotool\n│   └── testtex\n├── include\n│   └── OpenImageIO\n├── lib64\n│   ├── libjpeg.so.62\n│   ├── libjpeg.so.62.4.0\n│   ├── libOpenColorIO.so.2.4\n│   ├── libOpenColorIO.so.2.4.2\n│   ├── libOpenImageIO.so -\u003e libOpenImageIO.so.3.1\n│   ├── libOpenImageIO.so.3.1 -\u003e libOpenImageIO.so.3.1.6\n│   ├── libOpenImageIO.so.3.1.6\n│   ├── libOpenImageIO_Util.so -\u003e libOpenImageIO_Util.so.3.1\n│   ├── libOpenImageIO_Util.so.3.1\n│   ├── libOpenImageIO_Util.so.3.1.6\n│   ├── libraw_r.so.23\n│   ├── libtiff.so.5\n│   ├── libturbojpeg.so.0\n│   └── libturbojpeg.so.0.4.0\n└── share\n    ├── doc\n    └── fonts\n\n8 directories, 21 files\n```\n\nRunning through Docker also helps standardize the build steps so that the whole process is easily reproducible. The Dockerfile starts building using the `aswf/ci-base:2023.1` image as a base.\n\n### How does this whole thing work?\n\nThis workflow uses a multi-stage `Dockerfile`.\n\nThere are 2 stages:\n- build-stage (Build OIIO and its libraries)\n- export-stage (Export the compiled bits back to your filesystem)\n\nThese stages will:\n- [build-stage] Compile all third-party libraries required by OpenImageIO\n  - This is done using the tarballs in the `tarballs` dir, so for most things no internet connection is required (the only things still cloned from a remote are Imath and libturbo-jpeg, and I'll fix it soon) \n- [build-stage] Compile OpenImageIO and link against these third-party libraries\n- [build-stage] Copy the required share libraries (.so files) needed to use OIIO at runtime\n- [build-stage] Use `patchelf` to set the RPATH of all libraries to be relative\n  - This makes them easy to relocate and install wherever you want\n- [export-stage] Copy a tarball (`oiio-dist.tar.gz`) into your local filesystem\n  - This will contain the required headers and libs and binaries\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvvzen%2Fopenimageio-dockerized","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvvzen%2Fopenimageio-dockerized","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvvzen%2Fopenimageio-dockerized/lists"}