From 13ad6501361faa9433562dba4ea8c55f85bf1dc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20=C4=90or=C4=91evi=C4=87?= Date: Sat, 8 Dec 2018 18:42:46 +0100 Subject: Add a better Docker build script + update Dockerfile (#4222) * Add a Docker build script * Add usage and error messages * Add -r to reads Thanks mechmerlin * Add keyboard:keymap form, improve script * Add target argument, change usage forms in script * Add check for more than 3 args in keyboard:keymap:target form * Change Docker base image to debian, use community repo This matches what qmk_compiler uses (https://github.com/qmk/qmk_compiler/blob/master/Dockerfile#L1). I've removed the maintainer as we now have a community build on Docker Hub (https://hub.docker.com/r/qmkfm/qmk_firmware). This Dockerfile will also be maintained by the community. * Change build command format to keyboard:keymap * Call make directly in container run command * Simplify script, remove 3-arg form * Add COPY to Dockerfile so images are usable in and of themselves Also change WORKDIR from /qmk to /qmk_firmware * Add USB pass-through for Linux and docker-machine hosts * Read directly into variables instead of array * Alphabetically sort dependencies in Dockerfile * Set executable bit on util/docker_build.sh * Update Docker docs * Add warning about Docker on Windows * Expand comment in docs * Check docker-machine exit code instead of string * Only match --help with whole arguments * Make script POSIX-compliant * Convert script indentation to tabs --- Dockerfile | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile index dfde33b5cc..8f78dc2bfe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,28 +1,29 @@ -FROM debian:jessie -MAINTAINER Erik Dasque +FROM debian -RUN apt-get update && apt-get install --no-install-recommends -y build-essential \ - gcc \ - unzip \ - wget \ - zip \ - gcc-avr \ - binutils-avr \ +RUN apt-get update && apt-get install --no-install-recommends -y \ avr-libc \ + avrdude \ + binutils-arm-none-eabi \ + binutils-avr \ + build-essential \ dfu-programmer \ dfu-util \ + gcc \ gcc-arm-none-eabi \ - binutils-arm-none-eabi \ - libnewlib-arm-none-eabi \ + gcc-avr \ git \ + libnewlib-arm-none-eabi \ software-properties-common \ - avrdude \ + unzip \ + wget \ + zip \ && rm -rf /var/lib/apt/lists/* -ENV keyboard=ergodox -ENV subproject=ez -ENV keymap=default +ENV KEYBOARD=ergodox_ez +ENV KEYMAP=default + +VOLUME /qmk_firmware +WORKDIR /qmk_firmware +COPY . . -VOLUME /qmk -WORKDIR /qmk -CMD make clean ; make keyboard=${keyboard} subproject=${subproject} keymap=${keymap} +CMD make $KEYBOARD:$KEYMAP -- cgit v1.2.1