Images can be found on DockerHub or GitHub container repository.
Example for GTK 4.8:
docker pull mglolenstine/gtk4-cross:rust-gtk-4.8
Example for GTK 4.8:
docker pull ghcr.io/mglolenstine/gtk4-cross:rust-gtk-4.8
Create a container inside your project and run it
docker run -ti -v `pwd`:/mnt gtk4-cross-rust
If 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-rust
Then 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
gtk4-cross-<language>
(<language>
should be replaced with whatever your project relies on and makes it recognisable)cd
into the new directorybuild.sh
that's going to contain your building code.package.sh
from the root into the directoryln ../package.sh package.sh
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"]
docker build gtk4-cross-<language> -t gtk4-cross-<language>
docker run -ti -v `pwd`:/mnt gtk4-cross-<language>
README.md