diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7f1e47f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +FROM --platform=linux/arm64 alpine:3.20 + +RUN apk add --no-cache gdb strace + +WORKDIR /challenge +COPY main ./main +COPY license ./build/license +RUN chmod +x ./main + +CMD ["/challenge/main"] \ No newline at end of file diff --git a/Makefile b/Makefile index 194cc54..5388bc0 100644 --- a/Makefile +++ b/Makefile @@ -27,6 +27,7 @@ EMU_OBJ_LICENSE ?= $(BUILD_DIR)/license EMU_OBJ_LICENSE_IF_EXISTS := $(wildcard $(EMU_OBJ_LICENSE)) README_FILE ?= $(BUILD_DIR)/README.txt +DOCKERFILE ?= $(BUILD_DIR)/Dockerfile ZIP_FILE ?= $(BUILD_DIR)/challenge.zip ZIP_FILE_IF_EXISTS := $(wildcard $(ZIP_FILE)) @@ -98,9 +99,12 @@ endif $(EMU_OBJ): $(EMU_OBJ_FILES) | $(BUILD_DIR) $(RISCV_CC) $(RISCV_ARCH_FLAGS) -nostdlib -Wl,-e,entry -Wl,-Ttext=0 -Wl,--emit-relocs $(EMU_OBJ_FILES) -o $@ +# Copy Dockerfile into build dir +$(DOCKERFILE): Dockerfile | $(BUILD_DIR) + cp $< $@ # Bundle the challenge -$(ZIP_FILE): $(HOST_EXE) $(EMU_OBJ_LICENSE) $(README_FILE) | $(BUILD_DIR) +$(ZIP_FILE): $(HOST_EXE) $(EMU_OBJ_LICENSE) $(README_FILE) $(DOCKERFILE) | $(BUILD_DIR) ifneq ($(ZIP_FILE_IF_EXISTS),) rm $(ZIP_FILE_IF_EXISTS) endif @@ -121,4 +125,3 @@ clean: disas-risc: $(_DISAS_FILES) $(RISCV_OBJDUMP) -d $^ -