diff options
author | red031000 <rubenru09@aol.com> | 2021-02-20 16:20:30 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-20 16:20:30 +0000 |
commit | ab4e396b1dac3f2a3a3379f9aa3de4de16fd26e9 (patch) | |
tree | 54b6c07210c5479df3ad17f3cb88d298fe35ad1d /contrib/docker | |
parent | 41bce72d7d97a7843debfe0807d68423f54142f5 (diff) | |
parent | 25b2fe15f401804e99dddf4fd3b15ac49afd9246 (diff) |
Merge pull request #318 from dsastr/docker-support
Add support for building with Docker
Diffstat (limited to 'contrib/docker')
-rw-r--r-- | contrib/docker/Dockerfile.ubuntu | 13 | ||||
-rwxr-xr-x | contrib/docker/build_docker.sh | 30 |
2 files changed, 37 insertions, 6 deletions
diff --git a/contrib/docker/Dockerfile.ubuntu b/contrib/docker/Dockerfile.ubuntu new file mode 100644 index 00000000..d06b15f2 --- /dev/null +++ b/contrib/docker/Dockerfile.ubuntu @@ -0,0 +1,13 @@ +FROM ubuntu:20.04 + +RUN dpkg --add-architecture i386 && \ +apt update && \ +DEBIAN_FRONTEND=noninteractive apt install -y --no-install-recommends binutils-arm-none-eabi build-essential git libpng-dev wine wine32 && \ +rm -r /var/cache/apt/archives /var/lib/apt/lists + +WORKDIR /app + +# Run a persistent wineserver to avoid errors like +# wine: a wine server seems to be running, but I cannot connect to it. +RUN mkdir -p /root/.wine +CMD /usr/lib/wine/wineserver32 -f -p diff --git a/contrib/docker/build_docker.sh b/contrib/docker/build_docker.sh index b59e2158..dafacbe7 100755 --- a/contrib/docker/build_docker.sh +++ b/contrib/docker/build_docker.sh @@ -1,11 +1,29 @@ #!/bin/sh -ver="0.1" +PROJECT_PATH="$(git rev-parse --show-toplevel)" +PROJECT_NAME="pokediamond" +PROJECT_VER="0.1" -docker inspect pokediamond:$ver > /dev/null -if [ $? = 0 ]; then - echo "Not rebuilding image since image exists"; +# Build container image +IMAGE_NAME="$PROJECT_NAME:$PROJECT_VER" +IMAGE_PATH="$PROJECT_PATH/contrib/docker" +if docker inspect $IMAGE_NAME > /dev/null; then + echo "Not rebuilding image since it already exists"; +elif [ "x$USE_UBUNTU" != "x" ]; then + docker build -t $IMAGE_NAME -f $IMAGE_PATH/Dockerfile.ubuntu $IMAGE_PATH else - docker build -t pokediamond:$ver $(git rev-parse --show-toplevel)/contrib/docker + docker build -t $IMAGE_NAME $IMAGE_PATH fi -docker run --network=none -it -v $(git rev-parse --show-toplevel):/app pokediamond:$ver + +# Start container and wine server +CONTAINER_NAME="$PROJECT_NAME-build" +docker run -d --name $CONTAINER_NAME --network=none -it --rm -v $PROJECT_PATH:/app $IMAGE_NAME + +# Build selected project, always exit successfully to ensure container stops +EXIT_CODE="0" +docker exec -i -t $CONTAINER_NAME make $@ || EXIT_CODE="$?" + +# Exit and remove the container +docker stop $CONTAINER_NAME + +exit $EXIT_CODE |