{"id":17693617,"url":"https://github.com/andy5995/linuxdeploy-build-helper-container","last_synced_at":"2025-04-23T00:48:02.465Z","repository":{"id":220446156,"uuid":"751660480","full_name":"andy5995/linuxdeploy-build-helper-container","owner":"andy5995","description":"Docker container that aims to help build an AppImage on multiple architectures using linuxdeploy","archived":false,"fork":false,"pushed_at":"2025-04-14T05:14:33.000Z","size":167,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"trunk","last_synced_at":"2025-04-23T00:47:54.557Z","etag":null,"topics":["appimage","appimage-builder","appimagetool","containers","docker","docker-container","docker-image","linux","linuxdeploy","mit-license","packaging","packaging-tool"],"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/andy5995.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.txt","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,"zenodo":null}},"created_at":"2024-02-02T03:37:53.000Z","updated_at":"2025-04-14T05:14:35.000Z","dependencies_parsed_at":"2024-10-24T16:46:14.992Z","dependency_job_id":"135a48cc-c785-4b04-9b5c-fd3b3817421b","html_url":"https://github.com/andy5995/linuxdeploy-build-helper-container","commit_stats":null,"previous_names":["andy5995/linuxdeploy-build-helper"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andy5995%2Flinuxdeploy-build-helper-container","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andy5995%2Flinuxdeploy-build-helper-container/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andy5995%2Flinuxdeploy-build-helper-container/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andy5995%2Flinuxdeploy-build-helper-container/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andy5995","download_url":"https://codeload.github.com/andy5995/linuxdeploy-build-helper-container/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250348876,"owners_count":21415910,"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","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":["appimage","appimage-builder","appimagetool","containers","docker","docker-container","docker-image","linux","linuxdeploy","mit-license","packaging","packaging-tool"],"created_at":"2024-10-24T13:45:49.388Z","updated_at":"2025-04-23T00:48:02.457Z","avatar_url":"https://github.com/andy5995.png","language":"Dockerfile","readme":"# linuxdeploy Build Helper Container\n\nA docker container that aims to help build an\n[AppImage](https://github.com/AppImage/AppImageKit) on multiple architectures\nusing [linuxdeploy](https://github.com/linuxdeploy/linuxdeploy).\n\nLatest version: v3-jammy\n\n## Available architectures\n\n    amd64\n    arm64\n\n## Usage\n\nMake a `docker` sub-directory within your project and copy `.env` and\n`docker-compose.yml` to it. Add custom variables to suit your needs. Add your\nnumeric user and group id to the corresponding variables in `.env`. You can\nfind them by using:\n\n    id -u\n    id -g\n\nTo build the AppImage:\n\n    docker-compose -f docker/docker-compose.yml run --rm build\n\nThis is meant to be run from the source root of your project. Using the\ncommand above, your current directory will be mounted in the container at\n`/workspace`.\n\nYou can see an example of an AppImage build script at\n[rmw/packaging/appimage/pre-appimage.sh](https://github.com/theimpossibleastronaut/rmw/blob/master/packaging/appimage/pre-appimage.sh).\nAdd the `/path/to/script` in your custom `.env` file.\n\nWhen the container starts, 'root' changes the UID of user 'builder' (a user\ncreated during the build of the Dockerfile) to HOSTUID. This allows builder to\nbuild your project and create the AppImage without root privileges (the\nresulting files will be owned by you).\n\nYou may use `sudo` in your script to install packages or do other things.\n\nIf you would like to look around the container, you can use\n\n    docker run -it --rm --entrypoint bash andy5995/linuxdeploy:v3-jammy\n\n\u003e [!NOTE]\n\u003e The image is also available from the GitHub Container Registry:\n\u003e\n\u003e ```\n\u003e docker pull ghcr.io/andy5995/linuxdeploy-build-helper-container:v3-jammy\n\u003e ```\n\n## Locally\n\nTo build for other architectures, you may need to use qemu with docker. There\nmay be other ways, but you can check out [this\ndocument](https://www.stereolabs.com/docs/docker/building-arm-container-on-x86)\nfor starters. If you are set up to build on other architectures, edit the\n**PLATFORM** variable in docker-compose.yml, or export it when running\n`docker-compose`:\n\n    PLATFORM=linux/arm64 docker-compose -f docker/docker-compose.yml pull build\n\nTo pull the image for the corresponding architecture. Then run\n`docker-compose` by preceding it again with the PLATFORM variable:\n\n    PLATFORM=linux/arm64 docker-compose -f docker/docker-compose.yml run --rm build\n\nAlternatively, you can export the variable:\n\n    export PLATFORM=linux/arm64\n\nAnd then run the `docker-compose` commands without preceding them with the\nvariable.\n\n## In a GitHub Runner\n\nSee [test.yml](https://github.com/andy5995/linuxdeploy-build-helper-container/blob/trunk/.github/workflows/test.yml)\n\n## linuxdeploy Plugins\n\nThese plugins are installed in the container:\n\n* [linuxdeploy-plugin-gtk](https://github.com/linuxdeploy/linuxdeploy-plugin-gtk)\n* [linuxdeploy-plugin-qt](https://github.com/linuxdeploy/linuxdeploy-plugin-qt)\n\n## Note\n\nThe container runs Ubuntu 22.04 (Jammy Jellyfish). See [this\ndiscussion](https://github.com/orgs/AppImage/discussions/1254) for more\ndetails on why I chose that version of Ubuntu.\n\nSome 'GITHUB_...' variables will not work inside the container.\n\nRecent versions of cmake, meson, and ninja are installed to\n'/home/builder/.local/bin' which is the first path in PATH (installing them\nwith `apt` will probably offer no benefit).\n\nIf you want to see more details about the container or what packages are\npre-installed, look at the two Dockerfiles in this repository. If you'd like\nmore packages pre-installed, please open an issue.\n\n## Contributing\n\nOk, but it's a good idea to open an issue and ask about a change before\nstarting work on a pull request. Someone, or myself, may already be working on\nit, or planning to. Also, please consult [this\nguide](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/getting-started/best-practices-for-pull-requests)\nbefore you submit a pull request.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandy5995%2Flinuxdeploy-build-helper-container","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandy5995%2Flinuxdeploy-build-helper-container","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandy5995%2Flinuxdeploy-build-helper-container/lists"}