Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Dockerfiles for building TAK server Java stuff and creating images

Notifications You must be signed in to change notification settings

pvarki/docker-atak-server

Repository files navigation

Run TAK Java server in container

tldr:

cp takserver.env.example takserver.env
# edit the env
# export the variables gomplate uses (see the .tpl files)
docker compose pull --include-deps --ignore-pull-failures
docker compose -p tak up -d

or use docker compose.local.yml without gomplate for local dev (rebuilding containers):

export DOCKER_TAG_EXTRA="-dev"
docker build --no-cache --progress=plain -t takserver:latest${DOCKER_TAG_EXTRA} -t takserver:4.7-RELEASE-32${DOCKER_TAG_EXTRA} -t pvarki/takserver:4.7-RELEASE-32${DOCKER_TAG_EXTRA} .
cp takserver.env.example takserver.env
# edit the env
docker compose -f docker-compose.local.yml -p tak up

Note, for things that live in the volumes (like TAK certs) you must nuke the volumes to see changes:

docker compose -f docker-compose.local.yml -p tak down -v ; docker compose -f docker-compose.local.yml -p tak rm -vf

Creating client packages locally

Using the REST API is probably nicer though

Create client package:

docker compose -p tak exec takserver_api /bin/bash -c 'CLIENT_CERT_NAME=replaceme /opt/scripts/make_client_zip.sh'

Then get /opt/tak/certs/files/clientpkgs/replaceme.zip out of the container:

docker compose -p tak exec taktakserver_apiserver /bin/bash -c 'base64 /opt/tak/certs/files/clientpkgs/replaceme.zip' | base64 -id >replaceme.zip

This approach also works for recovering the admin cert (/opt/tak/certs/files/admin.p12 unless you changed the ADMIN_CERT_NAME ENV)

Creating new admin users

Create the user on the takserver container:

docker compose -p tak exec takserver_api /bin/bash -c 'cd /opt/tak/data/certs/ && CAPASS=$CA_PASS PASS=replaceme_user_cert_pass ./makeCert.sh client replaceme_username && ADMIN_CERT_NAME=replaceme_username /opt/scripts/enable_admin.sh'

See above about the hard way of getting the cert file, or use the REST API.

Gradle builds

Build the distribution:

mkdir outputs
docker build --progress=plain -f Dockerfile_build --target files -t atakbuild:files  .
docker run --rm -it -v `pwd`/outputs:/output atakbuild:files

Now you have the build artefacts in outputs -directory.

About

Dockerfiles for building TAK server Java stuff and creating images

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 5