sjqzhang / go-fastdfs

go-fastdfs 是一个简单的分布式文件系统(私有云存储),具有无中心、高性能,高可靠,免维护等优点,支持断点续传,分块上传,小文件合并,自动同步,自动修复。Go-fastdfs is a simple distributed file system (private cloud storage), with no center, high performance, high reliability, maintenance free and other advantages, support breakpoint continuation, block upload, small file merge, automatic synchronization, automatic repair.(similar fastdfs).
https://gitee.com/sjqzhang/go-fastdfs
The Unlicense
3.91k stars 745 forks source link

基于文档中Dockerfile构建镜像无法正常运行 #398

Closed lxh-015 closed 1 year ago

lxh-015 commented 1 year ago

使用Dockerfile

FROM registry.cn-hangzhou.aliyuncs.com/prince/alpine-golang:1.18 as builder
MAINTAINER s_jqzhang <s_jqzhang@163.com>
ARG VERSION=1.1.7
RUN set -xe; \
    apk update; \
    apk add --no-cache --virtual .build-deps \
    git; \
    mkdir -p /root/repo ; cd /root/repo ; \
    git clone https://github.com/sjqzhang/go-fastdfs ; \
    cd go-fastdfs; mv vendor src ; mv src .. ; cd .. ; mv go-fastdfs src/github.com/sjqzhang/ ; export GOPATH=/root/repo ; cd  src/github.com/sjqzhang/go-fastdfs ; \
     export GO111MODULE="off"; \
    CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o fileserver; \
    ls -lh .;
FROM registry.cn-hangzhou.aliyuncs.com/prince/alpine-bash

COPY --from=builder /root/repo/src/github.com/sjqzhang/go-fastdfs/fileserver /

ENV INSTALL_DIR /usr/local/go-fastdfs

ENV PATH $PATH:$INSTALL_DIR/

ENV GO_FASTDFS_DIR $INSTALL_DIR/data

RUN set -xe; \
    mkdir -p $GO_FASTDFS_DIR; \
    mkdir -p $GO_FASTDFS_DIR/conf; \
    mkdir -p $GO_FASTDFS_DIR/data; \
    mkdir -p $GO_FASTDFS_DIR/files; \
    mkdir -p $GO_FASTDFS_DIR/log; \
    mkdir -p $INSTALL_DIR; \
    mv /fileserver $INSTALL_DIR/; \
    chmod +x $INSTALL_DIR/fileserver;

WORKDIR $INSTALL_DIR

VOLUME $GO_FASTDFS_DIR

CMD ["fileserver", "server" , "${OPTS}"]

错误内容

4387674967e5:~/repo/src/github.com/sjqzhang/go-fastdfs# ./fileserver server
+ ./fileserver server
unexpected fault address 0x0
fatal error: fault
[signal SIGSEGV: segmentation violation code=0x80 addr=0x0 pc=0x466e3f]

goroutine 1 [running]:
runtime.throw({0xa1e53d?, 0x0?})
    /usr/local/go/src/runtime/panic.go:992 +0x71 fp=0xc0000db478 sp=0xc0000db448 pc=0x437751
runtime.sigpanic()
    /usr/local/go/src/runtime/signal_unix.go:825 +0x2ec fp=0xc0000db4c8 sp=0xc0000db478 pc=0x44d7cc
aeshashbody()
    /usr/local/go/src/runtime/asm_amd64.s:1343 +0x39f fp=0xc0000db4d0 sp=0xc0000db4c8 pc=0x466e3f
runtime.mapiternext(0xc0000aa640)
    /usr/local/go/src/runtime/map.go:934 +0x2cb fp=0xc0000db540 sp=0xc0000db4d0 pc=0x41184b
runtime.mapiterinit(0xc000058c00?, 0xc00018ef70?, 0x0?)
    /usr/local/go/src/runtime/map.go:861 +0x228 fp=0xc0000db560 sp=0xc0000db540 pc=0x411528
reflect.mapiterinit(0x410e3d?, 0x976f80?, 0xc00018ef78?)
    /usr/local/go/src/runtime/map.go:1373 +0x19 fp=0xc0000db588 sp=0xc0000db560 pc=0x463939
github.com/modern-go/reflect2.(*UnsafeMapType).UnsafeIterate(...)
    /root/repo/src/github.com/modern-go/reflect2/unsafe_map.go:112
github.com/json-iterator/go.(*sortKeysMapEncoder).Encode(0xc0000c3770, 0xc000096238, 0xc000090c00)
    /root/repo/src/github.com/json-iterator/go/reflect_map.go:291 +0x225 fp=0xc0000db6f8 sp=0xc0000db588 pc=0x82d5c5
github.com/json-iterator/go.(*onePtrEncoder).Encode(0xc00001f400, 0xc0000c3560, 0xc0000aa640?)
    /root/repo/src/github.com/json-iterator/go/reflect.go:219 +0x82 fp=0xc0000db730 sp=0xc0000db6f8 pc=0x8258c2
github.com/json-iterator/go.(*Stream).WriteVal(0xc000090c00, {0x985a00, 0xc0000c3560})
    /root/repo/src/github.com/json-iterator/go/reflect.go:98 +0x158 fp=0xc0000db7a0 sp=0xc0000db730 pc=0x824bd8
github.com/json-iterator/go.(*frozenConfig).Marshal(0xc000120fa0, {0x985a00, 0xc0000c3560})
    /root/repo/src/github.com/json-iterator/go/config.go:299 +0xc9 fp=0xc0000db838 sp=0xc0000db7a0 pc=0x81bd09
github.com/sjqzhang/go-fastdfs/server.(*Server).SaveStat.func1()
    /root/repo/src/github.com/sjqzhang/go-fastdfs/server/fileserver.go:592 +0x156 fp=0xc0000db8a0 sp=0xc0000db838 pc=0x8f8616
github.com/sjqzhang/go-fastdfs/server.(*Server).SaveStat(0xc0000329a0?)
    /root/repo/src/github.com/sjqzhang/go-fastdfs/server/fileserver.go:601 +0x33 fp=0xc0000db8c0 sp=0xc0000db8a0 pc=0x8f8493
github.com/sjqzhang/go-fastdfs/server.(*Server).RepairStatByDate(0xc0001922d0, {0xc000037fe0, 0x8})
    /root/repo/src/github.com/sjqzhang/go-fastdfs/server/http_repair.go:149 +0x425 fp=0xc0000dba28 sp=0xc0000db8c0 pc=0x90d0a5
github.com/sjqzhang/go-fastdfs/server.(*Server).FormatStatInfo(0xc0001922d0)
    /root/repo/src/github.com/sjqzhang/go-fastdfs/server/fileserver.go:1275 +0x89 fp=0xc0000dbb00 sp=0xc0000dba28 pc=0x8fc749
github.com/sjqzhang/go-fastdfs/server.(*Server).initComponent(0xc0001922d0, 0x0)
    /root/repo/src/github.com/sjqzhang/go-fastdfs/server/init.go:295 +0x3a5 fp=0xc0000dbc00 sp=0xc0000dbb00 pc=0x9179c5
github.com/sjqzhang/go-fastdfs/server.InitServer()
    /root/repo/src/github.com/sjqzhang/go-fastdfs/server/server.go:124 +0x10dd fp=0xc0000dbd78 sp=0xc0000dbc00 pc=0x91b19d
github.com/sjqzhang/go-fastdfs/cmd/server.main()
    /root/repo/src/github.com/sjqzhang/go-fastdfs/cmd/server/cmd.go:19 +0x19 fp=0xc0000dbd90 sp=0xc0000dbd78 pc=0x91ef79
github.com/sjqzhang/go-fastdfs/cmd/server.glob..func1(0xe5df00?, {0xa1e041?, 0x0?, 0x0?})
    /root/repo/src/github.com/sjqzhang/go-fastdfs/cmd/server/cmd.go:14 +0x17 fp=0xc0000dbda0 sp=0xc0000dbd90 pc=0x91ef37
github.com/spf13/cobra.(*Command).execute(0xe5df00, {0xe95230, 0x0, 0x0})
    /root/repo/src/github.com/spf13/cobra/command.go:856 +0x663 fp=0xc0000dbe78 sp=0xc0000dbda0 pc=0x7de7e3
github.com/spf13/cobra.(*Command).ExecuteC(0xc0001a9680)
    /root/repo/src/github.com/spf13/cobra/command.go:960 +0x39c fp=0xc0000dbf30 sp=0xc0000dbe78 pc=0x7deddc
github.com/spf13/cobra.(*Command).Execute(...)
    /root/repo/src/github.com/spf13/cobra/command.go:897
main.main()
    /root/repo/src/github.com/sjqzhang/go-fastdfs/main.go:31 +0x165 fp=0xc0000dbf80 sp=0xc0000dbf30 pc=0x91f2a5
runtime.main()
    /usr/local/go/src/runtime/proc.go:250 +0x212 fp=0xc0000dbfe0 sp=0xc0000dbf80 pc=0x439f32
runtime.goexit()
    /usr/local/go/src/runtime/asm_amd64.s:1571 +0x1 fp=0xc0000dbfe8 sp=0xc0000dbfe0 pc=0x469a41

goroutine 4 [sync.Cond.Wait]:
sync.runtime_notifyListWait(0xc00014acd0, 0x0)
    /usr/local/go/src/runtime/sema.go:513 +0x13d
sync.(*Cond).Wait(0x0?)
    /usr/local/go/src/sync/cond.go:56 +0x8c
github.com/sjqzhang/seelog.(*asyncLoopLogger).processItem(0xc000192000)
    /root/repo/src/github.com/sjqzhang/seelog/behavior_asynclooplogger.go:50 +0xa5
github.com/sjqzhang/seelog.(*asyncLoopLogger).processQueue(0xc000192000)
    /root/repo/src/github.com/sjqzhang/seelog/behavior_asynclooplogger.go:63 +0x35
created by github.com/sjqzhang/seelog.NewAsyncLoopLogger
    /root/repo/src/github.com/sjqzhang/seelog/behavior_asynclooplogger.go:40 +0xca

goroutine 5 [sync.Cond.Wait]:
sync.runtime_notifyListWait(0xc00014ae50, 0x0)
    /usr/local/go/src/runtime/sema.go:513 +0x13d
sync.(*Cond).Wait(0x0?)
    /usr/local/go/src/sync/cond.go:56 +0x8c
github.com/sjqzhang/seelog.(*asyncLoopLogger).processItem(0xc000192120)
    /root/repo/src/github.com/sjqzhang/seelog/behavior_asynclooplogger.go:50 +0xa5
github.com/sjqzhang/seelog.(*asyncLoopLogger).processQueue(0xc000192120)
    /root/repo/src/github.com/sjqzhang/seelog/behavior_asynclooplogger.go:63 +0x35
created by github.com/sjqzhang/seelog.NewAsyncLoopLogger
    /root/repo/src/github.com/sjqzhang/seelog/behavior_asynclooplogger.go:40 +0xca

goroutine 8 [select]:
github.com/syndtr/goleveldb/leveldb/util.(*BufferPool).drain(0xc0001862a0)
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/util/buffer_pool.go:206 +0xc7
created by github.com/syndtr/goleveldb/leveldb/util.NewBufferPool
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/util/buffer_pool.go:237 +0x18c

goroutine 20 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).compactionError(0xc000194820)
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:90 +0x158
created by github.com/syndtr/goleveldb/leveldb.openDB
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/db.go:142 +0x4ea

goroutine 21 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).mpoolDrain(0xc000194820)
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/db_state.go:101 +0xa8
created by github.com/syndtr/goleveldb/leveldb.openDB
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/db.go:143 +0x52a

goroutine 22 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).tCompaction(0xc000194820)
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:825 +0x657
created by github.com/syndtr/goleveldb/leveldb.openDB
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/db.go:149 +0x598

goroutine 23 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).mCompaction(0xc000194820)
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:762 +0x113
created by github.com/syndtr/goleveldb/leveldb.openDB
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/db.go:150 +0x5d6

goroutine 24 [select]:
github.com/syndtr/goleveldb/leveldb/util.(*BufferPool).drain(0xc000186380)
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/util/buffer_pool.go:206 +0xc7
created by github.com/syndtr/goleveldb/leveldb/util.NewBufferPool
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/util/buffer_pool.go:237 +0x18c

goroutine 25 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).compactionError(0xc0001951e0)
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:90 +0x158
created by github.com/syndtr/goleveldb/leveldb.openDB
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/db.go:142 +0x4ea

goroutine 26 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).mpoolDrain(0xc0001951e0)
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/db_state.go:101 +0xa8
created by github.com/syndtr/goleveldb/leveldb.openDB
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/db.go:143 +0x52a

goroutine 27 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).tCompaction(0xc0001951e0)
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:825 +0x657
created by github.com/syndtr/goleveldb/leveldb.openDB
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/db.go:149 +0x598

goroutine 28 [select]:
github.com/syndtr/goleveldb/leveldb.(*DB).mCompaction(0xc0001951e0)
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/db_compaction.go:762 +0x113
created by github.com/syndtr/goleveldb/leveldb.openDB
    /root/repo/src/github.com/syndtr/goleveldb/leveldb/db.go:150 +0x5d6

goroutine 9 [chan receive]:
github.com/sjqzhang/seelog.(*bufferedWriter).flushPeriodically(0xc00007fd40)
    /root/repo/src/github.com/sjqzhang/seelog/writers_bufferedwriter.go:153 +0x47
created by github.com/sjqzhang/seelog.NewBufferedWriter
    /root/repo/src/github.com/sjqzhang/seelog/writers_bufferedwriter.go:76 +0x1ef

goroutine 10 [sync.Cond.Wait]:
sync.runtime_notifyListWait(0xc00014b4d0, 0x1)
    /usr/local/go/src/runtime/sema.go:513 +0x13d
sync.(*Cond).Wait(0x3e8?)
    /usr/local/go/src/sync/cond.go:56 +0x8c
github.com/sjqzhang/seelog.(*asyncTimerLogger).processItem(0xc0001923f0)
    /root/repo/src/github.com/sjqzhang/seelog/behavior_asynctimerlogger.go:61 +0xa5
github.com/sjqzhang/seelog.(*asyncTimerLogger).processQueue(0xc0001923f0)
    /root/repo/src/github.com/sjqzhang/seelog/behavior_asynctimerlogger.go:74 +0x53
created by github.com/sjqzhang/seelog.NewAsyncTimerLogger
    /root/repo/src/github.com/sjqzhang/seelog/behavior_asynctimerlogger.go:51 +0xe5

goroutine 11 [chan receive]:
github.com/sjqzhang/seelog.(*bufferedWriter).flushPeriodically(0xc000189fb0)
    /root/repo/src/github.com/sjqzhang/seelog/writers_bufferedwriter.go:153 +0x47
created by github.com/sjqzhang/seelog.NewBufferedWriter
    /root/repo/src/github.com/sjqzhang/seelog/writers_bufferedwriter.go:76 +0x1ef

goroutine 12 [sync.Cond.Wait]:
sync.runtime_notifyListWait(0xc00014bd50, 0x0)
    /usr/local/go/src/runtime/sema.go:513 +0x13d
sync.(*Cond).Wait(0x0?)
    /usr/local/go/src/sync/cond.go:56 +0x8c
github.com/sjqzhang/seelog.(*asyncTimerLogger).processItem(0xc0001925a0)
    /root/repo/src/github.com/sjqzhang/seelog/behavior_asynctimerlogger.go:61 +0xa5
github.com/sjqzhang/seelog.(*asyncTimerLogger).processQueue(0xc0001925a0)
    /root/repo/src/github.com/sjqzhang/seelog/behavior_asynctimerlogger.go:74 +0x53
created by github.com/sjqzhang/seelog.NewAsyncTimerLogger
    /root/repo/src/github.com/sjqzhang/seelog/behavior_asynctimerlogger.go:51 +0xe5
sjqzhang commented 1 year ago

golang版本由现在的go1.18->go1.17问题已修复。