40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
FROM python:3.9-slim-buster
 | 
						|
 | 
						|
ARG KMKPY_REF
 | 
						|
ARG KMKPY_URL
 | 
						|
 | 
						|
ENV KMKPY_REF ${KMKPY_REF}
 | 
						|
ENV KMKPY_URL ${KMKPY_URL}
 | 
						|
 | 
						|
RUN mkdir -p /app /dist
 | 
						|
WORKDIR /app
 | 
						|
 | 
						|
RUN apt-get update && apt-get install -y build-essential curl gettext git git-lfs rsync wget zip lbzip2
 | 
						|
RUN pip install pipenv
 | 
						|
 | 
						|
# Pull CircuitPython-designated ARM GCC to avoid mismatches/weird
 | 
						|
# inconsistencies with upstream
 | 
						|
RUN curl -L -o /tmp/gcc-arm.tar.bz2 https://adafruit-circuit-python.s3.amazonaws.com/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2 && \
 | 
						|
	tar -C /usr --strip-components=1 -xaf /tmp/gcc-arm.tar.bz2 && \
 | 
						|
	rm -rf /tmp/gcc-arm.tar.bz2
 | 
						|
 | 
						|
# Get a local copy of KMKPython and its dependencies. We don't provide MPY
 | 
						|
# builds for kmkpython anymore, so we can get away with being opinionated
 | 
						|
# here.
 | 
						|
RUN git init /opt/kmkpython && \
 | 
						|
	git -C /opt/kmkpython remote add origin ${KMKPY_URL} && \
 | 
						|
	git -C /opt/kmkpython fetch --depth 1 origin ${KMKPY_REF} && \
 | 
						|
	git -C /opt/kmkpython checkout FETCH_HEAD && \
 | 
						|
	git -C /opt/kmkpython submodule update --init --recursive
 | 
						|
 | 
						|
# Build the MPY compiler
 | 
						|
RUN make -C /opt/kmkpython/mpy-cross
 | 
						|
 | 
						|
ENV PATH=/opt/kmkpython/mpy-cross:${PATH}
 | 
						|
 | 
						|
RUN mkdir -p /opt/kmkpython/frozen/kmk/kmk
 | 
						|
COPY ./build_kmkpython_release.sh /app/
 | 
						|
COPY ./kmk /opt/kmkpython/frozen/kmk/kmk
 | 
						|
 | 
						|
CMD /app/build_kmkpython_release.sh
 |