Skip to content

Commit

Permalink
feat: Docker Support for license DB
Browse files Browse the repository at this point in the history
Signed-off-by: Kaushlendra Pratap Singh <[email protected]>
  • Loading branch information
Kaushl2208 committed Jun 3, 2024
1 parent ee3282d commit 8c1fa00
Show file tree
Hide file tree
Showing 3 changed files with 100 additions and 0 deletions.
35 changes: 35 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# SPDX-FileCopyrightText: 2024 Kaushlendra Pratap <[email protected]>
# SPDX-License-Identifier: GPL-2.0-only
FROM golang:1.20 AS build

WORKDIR /LicenseDb

COPY go.mod go.sum ./
RUN go mod download

COPY cmd/ cmd/
COPY pkg/ pkg/
COPY docs/ docs/

RUN wget https://raw.githubusercontent.com/fossology/fossology/master/install/db/licenseRef.json -O licenseRef.json

RUN CGO_ENABLED=0 GOOS=linux go build -a -o laas ./cmd/laas

# Release Stage
FROM alpine:3.20 AS build-release

COPY entrypoint.sh /entrypoint.sh

RUN apk add --no-cache openssl bash \
&& chmod +x /entrypoint.sh

WORKDIR /data

COPY --from=build /LicenseDb/licenseRef.json /data/licenseRef.json
COPY --from=build /LicenseDb/laas /laas

EXPOSE 8080

USER noroot:noroot

ENTRYPOINT [ "/entrypoint.sh" ]
47 changes: 47 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# SPDX-FileCopyrightText: 2024 Kaushlendra Pratap <[email protected]>
# SPDX-License-Identifier: GPL-2.0-only
services:
licensedb:
container_name: licensedb
build:
context: .
environment:
DB_PASSWORD: fossy
DB_HOST: postgres
DB_PORT: 5432
DB_USER: fossy
DB_NAME: fossology
POPULATE_DB: true
GIN_MODE: debug
ports:
- 8080:8080
depends_on:
postgres:
condition: service_healthy
restart: always
networks:
- licensedb-network
postgres:
container_name: postgres
image: postgres:16
environment:
POSTGRES_PASSWORD: fossy
POSTGRES_USER: fossy
POSTGRES_DB: fossology
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
restart: always
healthcheck:
test: ["CMD-SHELL", "pg_isready --dbname $$POSTGRES_DB --username $$POSTGRES_USER"]
interval: 10s
timeout: 5s
retries: 5
networks:
- licensedb-network
networks:
licensedb-network:
driver: bridge
volumes:
pgdata:
18 changes: 18 additions & 0 deletions entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/bin/bash
# SPDX-FileCopyrightText: 2024 Kaushlendra Pratap <[email protected]>
# SPDX-License-Identifier: GPL-2.0-only

set -e

db_host="${DB_HOST:-localhost}"
db_port="${DB_PORT:-5432}"
db_name="${DB_NAME:-fossology}"
db_user="${DB_USER:-fossy}"
db_password="${DB_PASSWORD:-fossy}"
populate_db="${POPULATE_DB:-true}"
data_file="/data/licenseRef.json"

printf "TOKEN_HOUR_LIFESPAN=24\nAPI_SECRET=%s\n" $(openssl rand -hex 32) > .env

/laas -host=$db_host -port=$db_port -user=$db_user -dbname=$db_name \
-password=$db_password -datafile="$data_file" -populatedb=$populate_db

0 comments on commit 8c1fa00

Please sign in to comment.