Merge pull request #534 from Beckn-One/533-dockerfixes
Issue 533 - Add new Dockerfile to build adapter and plugins together and include the same in quick steps.
This commit is contained in:
32
Dockerfile.adapter-with-plugins
Normal file
32
Dockerfile.adapter-with-plugins
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
FROM golang:1.24-bullseye AS builder
|
||||||
|
|
||||||
|
WORKDIR /workspace/app
|
||||||
|
|
||||||
|
# Specifically copy only the necessary files and directories
|
||||||
|
COPY cmd/adapter/ ./cmd/adapter/
|
||||||
|
COPY core/ ./core/
|
||||||
|
COPY pkg/ ./pkg/
|
||||||
|
COPY install/build-plugins.sh ./install/build-plugins.sh
|
||||||
|
COPY go.mod .
|
||||||
|
COPY go.sum .
|
||||||
|
|
||||||
|
RUN go mod download
|
||||||
|
|
||||||
|
# Build main server
|
||||||
|
RUN go build -o server cmd/adapter/main.go
|
||||||
|
|
||||||
|
# Make the build script executable and run it to build plugins
|
||||||
|
RUN chmod +x install/build-plugins.sh && \
|
||||||
|
./install/build-plugins.sh
|
||||||
|
|
||||||
|
# Create minimal runtime image
|
||||||
|
FROM cgr.dev/chainguard/wolfi-base
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copy binary and plugins built with same Go version
|
||||||
|
COPY --from=builder /workspace/app/server .
|
||||||
|
COPY --from=builder /workspace/app/plugins ./plugins
|
||||||
|
|
||||||
|
EXPOSE 8081
|
||||||
|
|
||||||
|
CMD ["sh", "-c", "./server --config=${CONFIG_FILE}"]
|
||||||
11
README.md
11
README.md
@@ -205,23 +205,28 @@ This automated script will:
|
|||||||
- Start ONIX adapter in Docker
|
- Start ONIX adapter in Docker
|
||||||
- Create environment configuration
|
- Create environment configuration
|
||||||
|
|
||||||
**Note:** Extract schemas before running: `unzip schemas.zip` (required for schema validation)
|
**Note:** Extract schemas before running: `unzip schemas.zip` (required for schema validation) and before running the automated setup, build the adapter image ,update docker-compose-adapter2.yaml to use the correct image
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# from the repository root
|
||||||
|
docker build -f Dockerfile.adapter-with-plugins -t beckn-onix:latest .
|
||||||
|
```
|
||||||
**Services Started:**
|
**Services Started:**
|
||||||
- Redis: localhost:6379
|
- Redis: localhost:6379
|
||||||
- ONIX Adapter: http://localhost:8081
|
- ONIX Adapter: http://localhost:8081
|
||||||
|
|
||||||
### Docker Deployment
|
### Docker Deployment
|
||||||
|
|
||||||
|
**Note:** Start redis before before running onix adapter.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Build the Docker image
|
# Build the Docker image
|
||||||
docker build -f Dockerfile.adapter -t beckn-onix:latest .
|
docker build -t beckn-onix:latest -f Dockerfile.adapter-with-plugins .
|
||||||
|
|
||||||
# Run the container
|
# Run the container
|
||||||
docker run -p 8081:8081 \
|
docker run -p 8081:8081 \
|
||||||
-v $(pwd)/config:/app/config \
|
-v $(pwd)/config:/app/config \
|
||||||
-v $(pwd)/schemas:/app/schemas \
|
-v $(pwd)/schemas:/app/schemas \
|
||||||
-v $(pwd)/plugins:/app/plugins \
|
|
||||||
-e CONFIG_FILE="/app/config/local-simple.yaml" \
|
-e CONFIG_FILE="/app/config/local-simple.yaml" \
|
||||||
beckn-onix:latest
|
beckn-onix:latest
|
||||||
```
|
```
|
||||||
|
|||||||
16
SETUP.md
16
SETUP.md
@@ -88,7 +88,12 @@ This will automatically:
|
|||||||
|
|
||||||
**Key Management:** Uses `simplekeymanager` with embedded keys - no Vault setup required!
|
**Key Management:** Uses `simplekeymanager` with embedded keys - no Vault setup required!
|
||||||
|
|
||||||
**Note:** Extract schemas before running: `unzip schemas.zip` (required for schema validation)
|
**Note:** Extract schemas before running: `unzip schemas.zip` (required for schema validation) and before running the automated setup, build the adapter image ,update docker-compose-adapter2.yaml to use the correct image
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# from the repository root
|
||||||
|
docker build -f Dockerfile.adapter-with-plugins -t beckn-onix:latest .
|
||||||
|
```
|
||||||
|
|
||||||
### Option 2: Complete Beckn Network
|
### Option 2: Complete Beckn Network
|
||||||
|
|
||||||
@@ -120,12 +125,17 @@ This will automatically:
|
|||||||
- ONIX Adapter: http://localhost:8081
|
- ONIX Adapter: http://localhost:8081
|
||||||
- Redis: localhost:6379
|
- Redis: localhost:6379
|
||||||
|
|
||||||
**Note:** Extract schemas before running: `unzip schemas.zip` (required for schema validation)
|
**Note:** Extract schemas before running: `unzip schemas.zip` (required for schema validation) and before running the automated full-network setup, build the adapter image , update docker-compose-adapter2.yaml to use the correct image
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# from the repository root
|
||||||
|
docker build -f Dockerfile.adapter-with-plugins -t beckn-onix:latest .
|
||||||
|
```
|
||||||
|
|
||||||
**Intelligent Key Management:**
|
**Intelligent Key Management:**
|
||||||
The script reads `docker-compose-adapter2.yml` to detect which config file is being used (default: `local-simple.yaml`), extracts keys from protocol server configs, and automatically updates the `simplekeymanager` section in that config file - no manual configuration needed!
|
The script reads `docker-compose-adapter2.yml` to detect which config file is being used (default: `local-simple.yaml`), extracts keys from protocol server configs, and automatically updates the `simplekeymanager` section in that config file - no manual configuration needed!
|
||||||
|
|
||||||
**Note:** Update `docker-compose-adapter2.yml` to use the correct config file:
|
**Note:** Update `docker-compose-adapter2.yml` to use the correct config file and correct image:
|
||||||
- For combined setup (simplekeymanager): `CONFIG_FILE: "/app/config/local-simple.yaml"`
|
- For combined setup (simplekeymanager): `CONFIG_FILE: "/app/config/local-simple.yaml"`
|
||||||
- For combined setup (keymanager with Vault): `CONFIG_FILE: "/app/config/local-dev.yaml"`
|
- For combined setup (keymanager with Vault): `CONFIG_FILE: "/app/config/local-dev.yaml"`
|
||||||
- For combined setup (production): `CONFIG_FILE: "/app/config/onix/adapter.yaml"`
|
- For combined setup (production): `CONFIG_FILE: "/app/config/onix/adapter.yaml"`
|
||||||
|
|||||||
Reference in New Issue
Block a user