PlatformIO Docker

This commit is contained in:
iranl
2024-04-28 21:51:22 +02:00
parent a6cb6c10dc
commit 96c3932917
11 changed files with 285 additions and 33 deletions

45
Docker/Dockerfile_pio Normal file
View File

@@ -0,0 +1,45 @@
FROM eclipse-temurin:11-jdk-jammy AS builder
RUN set -ex && \
apt-get update && \
apt-get install -y git python3 pip && \
pip install --upgrade platformio && \
pip install --upgrade esptool
COPY icon /usr/src/nuki_hub/icon
COPY include /usr/src/nuki_hub/include
COPY lib /usr/src/nuki_hub/lib
COPY networkDevices /usr/src/nuki_hub/networkDevices
COPY partitions.csv /usr/src/nuki_hub
COPY platformio.ini /usr/src/nuki_hub
COPY index.html /usr/src/nuki_hub
COPY *.h /usr/src/nuki_hub/
COPY *.cpp /usr/src/nuki_hub/
RUN set -ex && \
cd /usr/src/nuki_hub && \
mkdir -p release/esp32 && \
mkdir -p release/esp32s3 && \
mkdir -p release/esp32c3 && \
mkdir -p release/esp32solo1 && \
pio run --environment esp32dev && \
esptool.py --chip esp32 merge_bin -o release/webflash_nuki_hub_esp32.bin --flash_mode dio --flash_freq keep --flash_size keep 0x1000 .pio/build/esp32dev/bootloader.bin 0x10000 .pio/build/esp32dev/firmware.bin 0x8000 .pio/build/esp32dev/partitions.bin && \
cp .pio/build/esp32dev/bootloader.bin release/esp32/bootloader.bin && \
cp .pio/build/esp32dev/firmware.bin release/esp32/nuki_hub_esp32.bin && \
cp .pio/build/esp32dev/partitions.bin release/esp32/nuki_hub.partitions.bin && \
pio run --environment esp32-s3 && \
esptool.py --chip esp32s3 merge_bin -o release/webflash_nuki_hub_esp32s3.bin --flash_mode dio --flash_freq keep --flash_size keep 0x0 .pio/build/esp32-s3/bootloader.bin 0x10000 .pio/build/esp32-s3/firmware.bin 0x8000 .pio/build/esp32-s3/partitions.bin && \
cp .pio/build/esp32-s3/bootloader.bin release/esp32s3/bootloader.bin && \
cp .pio/build/esp32-s3/firmware.bin release/esp32s3/nuki_hub_esp32s3.bin && \
cp .pio/build/esp32-s3/partitions.bin release/esp32s3/nuki_hub.partitions.bin && \
pio run --environment esp32-c3 && \
esptool.py --chip esp32c3 merge_bin -o release/webflash_nuki_hub_esp32c3.bin --flash_mode dio --flash_freq keep --flash_size keep 0x0 .pio/build/esp32-c3/bootloader.bin 0x10000 .pio/build/esp32-c3/firmware.bin 0x8000 .pio/build/esp32-c3/partitions.bin && \
cp .pio/build/esp32-c3/bootloader.bin release/esp32c3/bootloader.bin && \
cp .pio/build/esp32-c3/firmware.bin release/esp32c3/nuki_hub_esp32c3.bin && \
cp .pio/build/esp32-c3/partitions.bin release/esp32c3/nuki_hub.partitions.bin && \
pio run --environment esp32solo1 && \
cp .pio/build/esp32solo1/bootloader.bin release/esp32solo1/bootloader.bin && \
cp .pio/build/esp32solo1/firmware.bin release/esp32solo1/nuki_hub_esp32solo1.bin && \
cp .pio/build/esp32solo1/partitions.bin release/esp32solo1/nuki_hub.partitions.bin
CMD ["/bin/bash"]

View File

@@ -0,0 +1,49 @@
FROM eclipse-temurin:11-jdk-jammy AS builder
RUN set -ex && \
apt-get update && \
apt-get install -y git python3 pip && \
pip install --upgrade platformio && \
pip install --upgrade esptool
COPY icon /usr/src/nuki_hub/icon
COPY include /usr/src/nuki_hub/include
COPY lib /usr/src/nuki_hub/lib
COPY networkDevices /usr/src/nuki_hub/networkDevices
COPY partitions.csv /usr/src/nuki_hub
COPY platformio.ini /usr/src/nuki_hub
COPY index.html /usr/src/nuki_hub
COPY *.h /usr/src/nuki_hub/
COPY *.cpp /usr/src/nuki_hub/
RUN set -ex && \
cd /usr/src/nuki_hub && \
mkdir -p debug/esp32 && \
mkdir -p debug/esp32s3 && \
mkdir -p debug/esp32c3 && \
mkdir -p debug/esp32solo1 && \
pio run --environment esp32dev_dbg && \
esptool.py --chip esp32 merge_bin -o debug/webflash_nuki_hub_esp32.bin --flash_mode dio --flash_freq keep --flash_size keep 0x1000 .pio/build/esp32dev_dbg/bootloader.bin 0x10000 .pio/build/esp32dev_dbg/firmware.bin 0x8000 .pio/build/esp32dev_dbg/partitions.bin && \
cp .pio/build/esp32dev_dbg/bootloader.bin debug/esp32/bootloader.bin && \
cp .pio/build/esp32dev_dbg/firmware.bin debug/esp32/nuki_hub_esp32.bin && \
cp .pio/build/esp32dev_dbg/partitions.bin debug/esp32/nuki_hub.partitions.bin && \
cp .pio/build/esp32dev_dbg/firmware.elf debug/esp32/nuki_hub_esp32.elf && \
pio run --environment esp32-s3_dbg && \
esptool.py --chip esp32s3 merge_bin -o debug/webflash_nuki_hub_esp32s3.bin --flash_mode dio --flash_freq keep --flash_size keep 0x0 .pio/build/esp32-s3_dbg/bootloader.bin 0x10000 .pio/build/esp32-s3_dbg/firmware.bin 0x8000 .pio/build/esp32-s3_dbg/partitions.bin && \
cp .pio/build/esp32-s3_dbg/bootloader.bin debug/esp32s3/bootloader.bin && \
cp .pio/build/esp32-s3_dbg/firmware.bin debug/esp32s3/nuki_hub_esp32s3.bin && \
cp .pio/build/esp32-s3_dbg/partitions.bin debug/esp32s3/nuki_hub.partitions.bin && \
cp .pio/build/esp32-s3_dbg/firmware.elf debug/esp32s3/nuki_hub_esp32s3.elf && \
pio run --environment esp32-c3_dbg && \
esptool.py --chip esp32c3 merge_bin -o debug/webflash_nuki_hub_esp32c3.bin --flash_mode dio --flash_freq keep --flash_size keep 0x0 .pio/build/esp32-c3_dbg/bootloader.bin 0x10000 .pio/build/esp32-c3_dbg/firmware.bin 0x8000 .pio/build/esp32-c3_dbg/partitions.bin && \
cp .pio/build/esp32-c3_dbg/bootloader.bin debug/esp32c3/bootloader.bin && \
cp .pio/build/esp32-c3_dbg/firmware.bin debug/esp32c3/nuki_hub_esp32c3.bin && \
cp .pio/build/esp32-c3_dbg/partitions.bin debug/esp32c3/nuki_hub.partitions.bin && \
cp .pio/build/esp32-c3_dbg/firmware.elf debug/esp32c3/nuki_hub_esp32c3.elf && \
pio run --environment esp32solo1_dbg && \
cp .pio/build/esp32solo1_dbg/bootloader.bin debug/esp32solo1/bootloader.bin && \
cp .pio/build/esp32solo1_dbg/firmware.bin debug/esp32solo1/nuki_hub_esp32solo1.bin && \
cp .pio/build/esp32solo1_dbg/partitions.bin debug/esp32solo1/nuki_hub.partitions.bin && \
cp .pio/build/esp32solo1_dbg/firmware.elf debug/esp32solo1/nuki_hub_esp32solo1.elf
CMD ["/bin/bash"]

View File

@@ -1,10 +1,21 @@
# Build with Docker
# Build with Docker
You can build this project using Docker. Just run the following commands in the console:
## Build with PlatformIO (will build for the ESP32, ESP32-S3, ESP32-C3 and ESP32-solo1)
```console
cd Docker
./build_with_docker.sh
git clone https://github.com/technyon/nuki_hub --recursive
cd nuki_hub/Docker
./build_with_docker_pio.sh
```
once the script is complete you will find the nuki_nub binary in the `nuki_hub/build/release` folder.
once the script is complete you will find the nuki_hub binaries in the `nuki_hub/build_pio` folder.
## Build with CMake (will only build for the ESP32)
```console
git clone https://github.com/technyon/nuki_hub --recursive
cd nuki_hub/Docker
./build_with_docker_cmake.sh
```
once the script is complete you will find the nuki_hub binary in the `nuki_hub/build_cmake` folder.

View File

@@ -1,6 +0,0 @@
set -ex
docker build -f ./Dockerfile -t nuki_hub ..
docker create --name nuki_hub nuki_hub
rm -rf ../build
docker cp nuki_hub:/usr/src/nuki_hub/build/ ../
docker rm -f nuki_hub

View File

@@ -0,0 +1,6 @@
set -ex
docker build -f ./Dockerfile_cmake -t nuki_hub_cmake ..
docker create --name nuki_hub_cmake nuki_hub_cmake
rm -rf ../build_cmake
docker cp nuki_hub_cmake:/usr/src/nuki_hub/build/ ../build_cmake
docker rm -f nuki_hub_cmake

View File

@@ -0,0 +1,6 @@
set -ex
docker build -f ./Dockerfile_pio -t nuki_hub_pio ..
docker create --name nuki_hub_pio nuki_hub_pio
rm -rf ../build_pio
docker cp nuki_hub_pio:/usr/src/nuki_hub/release/ ../build_pio
docker rm -f nuki_hub_pio

View File

@@ -0,0 +1,6 @@
set -ex
docker build -f ./Dockerfile_pio_debug -t nuki_hub_pio_dbg ..
docker create --name nuki_hub_pio_dbg nuki_hub_pio_dbg
rm -rf ../build_pio_dbg
docker cp nuki_hub_pio_dbg:/usr/src/nuki_hub/debug/ ../build_pio_dbg
docker rm -f nuki_hub_pio_dbg