mirror of
https://github.com/fleetdm/fleet
synced 2026-04-21 13:37:30 +00:00
<!-- Add the related story/sub-task/bug number, like Resolves #123, or remove if NA --> **Related issue:** Resolves #34677 and #35932 Adding ~450K software to the loadtest, including scripts to add more software in the future. Software is held in a `software.sql` file, which is used to create a sqlite DB during osquery perf run/deployment. # Checklist for submitter ## Testing - [x] QA'd all new/changed functionality manually <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added support for loading software data from an external SQLite database via a new `--software_db_path` command-line flag for more realistic simulation scenarios. * Added import and SQL generation tools to build and manage custom software libraries. * **Documentation** * Added comprehensive README with setup instructions, tool usage, and end-to-end workflow guidance for the software library. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
36 lines
1.6 KiB
Docker
36 lines
1.6 KiB
Docker
FROM golang:1.25.3-alpine3.21@sha256:0c9f3e09a50a6c11714dbc37a6134fd0c474690030ed07d23a61755afd3a812f
|
|
ARG TAG
|
|
RUN apk add git sqlite gcc musl-dev sqlite-dev
|
|
RUN git clone -b $TAG --depth=1 --no-tags --progress --no-recurse-submodules https://github.com/fleetdm/fleet.git && cd /go/fleet/cmd/osquery-perf/ && go build .
|
|
|
|
# Generate software database from SQL file
|
|
RUN cd /go/fleet/cmd/osquery-perf/software-library && \
|
|
ls -lh && \
|
|
if [ ! -f software.sql ]; then \
|
|
echo "ERROR: software.sql not found in software-library directory"; \
|
|
exit 1; \
|
|
fi && \
|
|
echo "Generating software.db from software.sql..." && \
|
|
rm -f software.db && \
|
|
sqlite3 software.db < software.sql && \
|
|
if [ ! -f software.db ]; then \
|
|
echo "ERROR: Failed to generate software.db"; \
|
|
exit 1; \
|
|
fi && \
|
|
echo "Validating database..." && \
|
|
sqlite3 software.db "SELECT COUNT(*) FROM software;" && \
|
|
echo "Successfully generated software.db ($(du -h software.db | cut -f1))"
|
|
|
|
FROM alpine:3.22.2@sha256:4b7ce07002c69e8f3d704a9c5d6fd3053be500b7f1c69fc0d80990c2ad8dd412
|
|
LABEL maintainer="Fleet Developers"
|
|
|
|
# Create FleetDM group and user
|
|
RUN addgroup -S osquery-perf && adduser -S osquery-perf -G osquery-perf
|
|
|
|
COPY --from=0 /go/fleet/cmd/osquery-perf/osquery-perf /go/osquery-perf
|
|
COPY --from=0 /go/fleet/server/vulnerabilities/testdata/ /go/fleet/server/vulnerabilities/testdata/
|
|
# Copy software database (generated in builder stage)
|
|
COPY --from=0 /go/fleet/cmd/osquery-perf/software-library/ /go/software-library/
|
|
RUN apk update && apk upgrade && apk add --no-cache sqlite-libs
|
|
WORKDIR /go
|
|
USER osquery-perf
|