Images can be found on DockerHub or GitHub container repository.
Example for GTK 4.8:
docker pull mglolenstine/gtk4-cross:rust-gtk-4.8Example for GTK 4.8:
docker pull ghcr.io/mglolenstine/gtk4-cross:rust-gtk-4.8Create a container inside your project and run it
docker run -ti -v `pwd`:/mnt gtk4-cross-rustIf your Docker host uses SELinux and you're getting errors about Cargo.toml not being found when trying to build, you may need to add :z to the end of the volume mount path, like so:
docker run -ti -v `pwd`:/mnt:z gtk4-cross-rustThen run build to build the project and package to package it into a zip file.
package.zip will be present in your project directory.
To create required images, clone the repository and cd into the root.
To build any images other than the base one, you will need to have prebuilt the base image.
There's a file build_image.sh present in the root of the repository.
It takes environment variables and one cmdline argument to build the image you want.
| ENV | Default | Description |
|---|---|---|
| GTK | "main" | GTK version to be built |
| ADW | "main" | ADW version to be built |
| BASE | "gtk4-cross-base-$GTK-$ADW" | Base image name for Docker, only used on images built on top of the base image |
| TAG | "$IMAGE-$GTK-$ADW" | A name set for the output image |
The script takes one argument, which can be
| Argument | Description |
|---|---|
base |
Which builds the base image. |
rust |
Which builds the rust image. |
If you want to create your own project builder
- create a new directory with your own name
gtk4-cross-<language>(<language>should be replaced with whatever your project relies on and makes it recognisable) cdinto the new directory- create a file
build.shthat's going to contain your building code. - link
package.shfrom the root into the directory
ln ../package.sh package.sh- create a new
Dockerfile, and put in the following boilerplate to have a runnable container.
FROM gtk4-cross-base
ADD build.sh /usr/bin
RUN chmod +x /usr/bin/build.sh
ADD package.sh /usr/bin
RUN chmod +x /usr/bin/package.sh
CMD ["/bin/bash"]
- build the image
docker build gtk4-cross-<language> -t gtk4-cross-<language>- use the image
docker run -ti -v `pwd`:/mnt gtk4-cross-<language>- add a section about your new builder to this
README.md - contribute :)