mirror of
https://github.com/portapack-mayhem/mayhem-firmware.git
synced 2024-12-04 23:45:26 +00:00
dockerfile improvements (#296)
**Summary of changes:** - Added *some* inline documentation to make things a little more understandable - Replaced ARM toolchain dependency fetching, see #274 - Environment variable included to specify new or custom ARM toolchain. As ARM releases new versions of the toolchain, this URL can be changed.
This commit is contained in:
parent
9440538974
commit
a37d8cd10c
35
dockerfile
35
dockerfile
@ -1,14 +1,35 @@
|
||||
#Download base image.
|
||||
#The ubuntu:latest tag points to the "latest LTS"
|
||||
FROM ubuntu:latest
|
||||
VOLUME /myvol
|
||||
|
||||
#Set location to download ARM toolkit from.
|
||||
# This will need to be changed over time or replaced with a static link to the latest release.
|
||||
ENV ARMBINURL="https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2019q4/RC2.1/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2?revision=6e63531f-8cb1-40b9-bbfc-8a57cdfc01b4&la=en&hash=F761343D43A0587E8AC0925B723C04DBFB848339"
|
||||
|
||||
#Create volume /havocbin for compiled firmware binaries
|
||||
VOLUME /havocbin
|
||||
|
||||
#Copy build context (repository root) to /havocsrc
|
||||
COPY ./ /havocsrc
|
||||
|
||||
#Fetch dependencies from APT
|
||||
RUN apt-get update && \
|
||||
apt-get install -y software-properties-common && \
|
||||
apt-get install -y apt-transport-https
|
||||
|
||||
#
|
||||
RUN add-apt-repository ppa:team-gcc-arm-embedded/ppa && apt-get update && apt-get install -y gcc-arm-embedded dfu-util cmake git python python-pip && apt-get -qy autoremove
|
||||
apt-get install -y tar wget dfu-util cmake python python-pip && \
|
||||
apt-get -qy autoremove
|
||||
#Fetch additional dependencies from Python 2.x pip
|
||||
RUN pip install pyyaml
|
||||
|
||||
CMD git clone https://github.com/furrtek/portapack-havoc.git portapack-havoc && cd portapack-havoc && mkdir build && cd build && cmake .. && make firmware && cp /portapack-havoc/firmware/portapack-h1-havoc.bin /myvol
|
||||
#Grab the GNU ARM toolchain from arm.com
|
||||
#Then extract contents to /opt/build/armbin/
|
||||
RUN mkdir /opt/build && cd /opt/build && \
|
||||
wget -O gcc-arm-none-eabi $ARMBINURL && \
|
||||
mkdir armbin && \
|
||||
tar --strip=1 -xjvf gcc-arm-none-eabi -C armbin
|
||||
|
||||
#Set environment variable so compiler knows where the toolchain lives
|
||||
ENV PATH=$PATH:/opt/build/armbin/bin
|
||||
|
||||
CMD cd /havocsrc && \
|
||||
mkdir build && cd build && \
|
||||
cmake .. && make firmware && \
|
||||
cp /portapack-havoc/firmware/portapack-h1-havoc.bin /havocbin
|
||||
|
Loading…
Reference in New Issue
Block a user