Skip to content

[Deployment] #3445

Open
Open
@lushou

Description

@lushou

OpenIM Server Version

main

Operating System and CPU Architecture

Linux (AMD)

Deployment Method

Docker Deployment

Issue Description and Steps to Reproduce

Use Go 1.22 Alpine as the base image for building the application

FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/golang:1.22-alpine3.20 AS builder

Define the base directory for the application as an environment variable

ENV SERVER_DIR=/openim-server

Set the working directory inside the container based on the environment variable

WORKDIR $SERVER_DIR

Set the Go proxy to improve dependency resolution speed

ENV GOPROXY=https://goproxy.io,direct

Copy all files from the current directory into the container

COPY . .

RUN go env -w GO111MODULE=on && go env -w GOPROXY=https://goproxy.cn,direct && go mod download

Install Mage to use for building the application

RUN go install github.com/magefile/[email protected]

Optionally build your application if needed

RUN mage build

Using Alpine Linux with Go environment for the final image

FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/golang:1.22-alpine3.20

Install necessary packages, such as bash

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk add --no-cache bash

Set the environment and work directory

ENV SERVER_DIR=/openim-server
WORKDIR $SERVER_DIR

Copy the compiled binaries and mage from the builder image to the final image

COPY --from=builder $SERVER_DIR/_output $SERVER_DIR/_output
COPY --from=builder $SERVER_DIR/config $SERVER_DIR/config
COPY --from=builder /go/bin/mage /usr/local/bin/mage
COPY --from=builder $SERVER_DIR/magefile_windows.go $SERVER_DIR/
COPY --from=builder $SERVER_DIR/magefile_unix.go $SERVER_DIR/
COPY --from=builder $SERVER_DIR/magefile.go $SERVER_DIR/
COPY --from=builder $SERVER_DIR/start-config.yml $SERVER_DIR/
COPY --from=builder $SERVER_DIR/go.mod $SERVER_DIR/
COPY --from=builder $SERVER_DIR/go.sum $SERVER_DIR/

RUN go env -w GO111MODULE=on && go env -w GOPROXY=https://goproxy.cn,direct && go get github.com/openimsdk/[email protected]

Set the command to run when the container starts

ENTRYPOINT ["sh", "-c", "mage start && tail -f /dev/null"]

Screenshots Link

docker运行出现了如下问题:

Image

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions