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
- 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) cd
into the new directory- create a file
build.sh
that's going to contain your building code. - link
package.sh
from 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 :)