diff --git a/haxe/README-short.txt b/haxe/README-short.txt new file mode 100644 index 000000000..5c706a079 --- /dev/null +++ b/haxe/README-short.txt @@ -0,0 +1 @@ +Haxe is a modern, high level, static typed programming language with multiple compilation targets. \ No newline at end of file diff --git a/haxe/content.md b/haxe/content.md new file mode 100644 index 000000000..7563ab319 --- /dev/null +++ b/haxe/content.md @@ -0,0 +1,63 @@ +# What is Haxe? + +[Haxe](https://haxe.org) is an open source toolkit based on a modern, high level, strictly typed programming language, a cross-compiler, a complete cross-platform standard library and ways to access each platform's native capabilities. + +The Haxe compiler can output a number of source and binary files. As of Haxe 3.4.0-rc.1, the Haxe compiler can target JavaScript, Java, C#, C++, Python, PHP, Flash SWF, ActionScript 3, Lua, and Neko. + +%%LOGO%% + +# About this image + +This image ships a minimal Haxe toolkit: + +- the `haxe` compiler with its standard library +- the `haxelib` library manager +- the `neko` virtual machine + +# How to use this image + +The most straightforward way to use this image is to use a Haxe container as both the build and runtime environment. In your `Dockerfile`, writing something along the lines of the following will compile and run your project: + +```dockerfile +FROM haxe:3.4 + +RUN mkdir -p /usr/src/app +WORKDIR /usr/src/app + +# install dependencies +COPY *.hxml /usr/src/app/ +RUN yes | haxelib install all + +# compile the project +COPY . /usr/src/app +RUN haxe build.hxml + +# run the output when the container starts +CMD ["neko", "Main.n"] +``` + +Then, build and run the Docker image: + +```console +$ docker build -t my-haxe-app . +$ docker run -it --rm --name my-running-app my-haxe-app +``` + +## Using the onbuild variants + +There are `onbuild` variants that include multiple `ONBUILD` triggers to perform all of the steps in the above Dockerfile, except there is no `CMD` instruction for running the compilation output. + +Rewriting the above Dockerfile with `haxe:3.4-onbuild`, we will get: + +```dockerfile +FROM haxe:3.4-onbuild + +# run the output when the container starts +CMD ["neko", "Main.n"] +``` + +The `onbuild` variants assume the main compilation hxml file is named `build.hxml`. To use another hxml file, set the `BUILD_HXML` build argument during build: + +```console +$ docker build -t my-haxe-app --build-arg BUILD_HXML=compile.hxml . +``` diff --git a/haxe/github-repo b/haxe/github-repo new file mode 100644 index 000000000..85fdba1dd --- /dev/null +++ b/haxe/github-repo @@ -0,0 +1 @@ +https://github.com/HaxeFoundation/docker-library-haxe diff --git a/haxe/license.md b/haxe/license.md new file mode 100644 index 000000000..35a79db8b --- /dev/null +++ b/haxe/license.md @@ -0,0 +1 @@ +View [license information](https://haxe.org/foundation/open-source.html) for the software contained in this image. diff --git a/haxe/logo.png b/haxe/logo.png new file mode 100644 index 000000000..9940db61d Binary files /dev/null and b/haxe/logo.png differ