generated from rollkit/template-da-repo
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: add local sequencer and docker file (#20)
* add local sequencer and docker file * add docker build to ci * upgrade compat to go 1.23 * expose 50051
- Loading branch information
1 parent
c655a9f
commit c5564f1
Showing
5 changed files
with
107 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
name: Docker Build & Publish | ||
|
||
# Trigger on all push events, new semantic version tags, and all PRs | ||
on: | ||
push: | ||
branches: | ||
- "main" | ||
tags: | ||
- "v*" | ||
pull_request: | ||
|
||
jobs: | ||
go-sequencing-docker: | ||
permissions: | ||
contents: write | ||
packages: write | ||
uses: rollkit/.github/.github/workflows/[email protected] # yamllint disable-line rule:line-length | ||
with: | ||
dockerfile: Dockerfile | ||
secrets: inherit |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
build/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
FROM --platform=$BUILDPLATFORM golang:1.23-alpine AS build-env | ||
|
||
# Set working directory for the build | ||
WORKDIR /src | ||
|
||
COPY . . | ||
|
||
RUN go mod tidy -compat=1.23 && \ | ||
go build /src/cmd/local-sequencer/main.go | ||
|
||
# Final image | ||
FROM alpine:3.18.3 | ||
|
||
WORKDIR /root | ||
|
||
# Copy over binaries from the build-env | ||
COPY --from=build-env /src/main /usr/bin/local-sequencer | ||
|
||
EXPOSE 50051 | ||
|
||
CMD ["local-sequencer", "-listen-all"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
package main | ||
|
||
import ( | ||
"flag" | ||
"fmt" | ||
"log" | ||
"net" | ||
"os" | ||
"os/signal" | ||
"syscall" | ||
|
||
"github.com/rollkit/go-sequencing/proxy/grpc" | ||
"github.com/rollkit/go-sequencing/test" | ||
) | ||
|
||
const ( | ||
defaultHost = "localhost" | ||
defaultPort = "50051" | ||
defaultRollupId = "rollup-id" | ||
) | ||
|
||
func main() { | ||
var ( | ||
host string | ||
port string | ||
rollupId string | ||
listenAll bool | ||
) | ||
flag.StringVar(&port, "port", defaultPort, "listening port") | ||
flag.StringVar(&host, "host", defaultHost, "listening address") | ||
flag.StringVar(&rollupId, "rollup-id", defaultRollupId, "rollup id") | ||
flag.BoolVar(&listenAll, "listen-all", false, "listen on all network interfaces (0.0.0.0) instead of just localhost") | ||
flag.Parse() | ||
|
||
if listenAll { | ||
host = "0.0.0.0" | ||
} | ||
|
||
d := test.NewDummySequencer([]byte(rollupId)) | ||
srv := grpc.NewServer(d, d, d) | ||
log.Printf("Listening on: %s:%s", host, port) | ||
|
||
listenAddress := fmt.Sprintf("%s:%s", host, port) | ||
lis, err := net.Listen("tcp", listenAddress) | ||
if err != nil { | ||
log.Fatal("error while serving:", err) | ||
} | ||
go func() { | ||
_ = srv.Serve(lis) | ||
}() | ||
|
||
interrupt := make(chan os.Signal, 1) | ||
signal.Notify(interrupt, os.Interrupt, syscall.SIGINT) | ||
<-interrupt | ||
fmt.Println("\nCtrl+C pressed. Exiting...") | ||
os.Exit(0) | ||
} |