diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f32cb31 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +# Build stage +FROM golang:1.22.2-alpine AS builder +WORKDIR /app +COPY go.mod go.sum ./ +RUN go mod download +COPY . . +RUN CGO_ENABLED=0 go build -o memogram ./bin/memogram +RUN chmod +x memogram + +# Run stage +FROM alpine:latest +WORKDIR /app +ENV SERVER_ADDR=dns:localhost:5230 +ENV BOT_TOKEN=your_telegram_bot_token +COPY .env.example .env +COPY --from=builder /app/memogram . +CMD ["./memogram"] diff --git a/README.md b/README.md index 81ef2da..630296d 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,8 @@ The `SERVER_ADDR` should be a gRPC server address that the Memos is running on. ### Starting the Service +#### Starting with binary + 1. Download and extract the released binary file; 2. Create a `.env` file in the same directory as the binary file; 3. Run the executable in the terminal: @@ -36,6 +38,22 @@ The `SERVER_ADDR` should be a gRPC server address that the Memos is running on. 4. Once the bot is running, you can interact with it via your Telegram bot. +#### Starting with Docker + +Or you can start the service with Docker: + +1. Build the Docker image: `docker build -t memogram .` +2. Run the Docker container with the required environment variables: + + ```sh + docker run -d --name memogram \ + -e SERVER_ADDR=dns:localhost:5230 \ + -e BOT_TOKEN=your_telegram_bot_token \ + memogram + ``` + +3. The Memogram service should now be running inside the Docker container. You can interact with it via your Telegram bot. + ### Interaction Commands - `/start `: Start the bot with your Memos access token.