lyswhut / lx-music-sync-server

运行在Node.js上的LX Music数据同步服务
Apache License 2.0
494 stars 139 forks source link

补充docker-compose示例 #11

Open zouxingyuks opened 1 year ago

zouxingyuks commented 1 year ago

提供一个可用的docker-compose示例,供大家使用

zouxingyuks commented 1 year ago

使用镜像来自@esme518

userfhy commented 1 year ago

@esme518

补充一下:

docker-compose.yml

version: '3.1'
services:
  lx-music-sync-server:
    restart: always
    build:
      context: .
      dockerfile: Dockerfile
    image: lx-music-sync-server:1.0.1             #自定义镜像名和版本号
    container_name: lx-music-sync-server
    volumes:
      - './data:/server/data'
    ports:
      - 9527:9527
    environment:
      SERVER_NAME: 'lx Sync Server'
      TZ: 'Asia/Shanghai'
      NODE_ENV: 'production'
      LOG_PATH: '/server/data/logs'
      BIND_IP: '0.0.0.0'
      PORT: 9527
      MAX_SNAPSHOT_NUM: 10
      LX_USER_user1: 'password'
      LIST_ADD_MUSIC_LOCATION_TYPE: 'bottom'

Dockerfile

#
# Dockerfile for lx-music-sync-server
#

FROM node:16-alpine as builder

WORKDIR /build

RUN set -ex \
    && apk add --update --no-cache \
           git \
           g++ \
           make \
           py3-pip \
    && git clone https://github.com/lyswhut/lx-music-sync-server.git . \
    && git checkout $(git tag | sort -V | tail -1) \
    && npm ci && npm run build \
    && mkdir dst \
    && mv server config.js index.js package-lock.json package.json -t dst \
    && rm -rf /tmp/* /var/cache/apk/*

FROM node:16-alpine
COPY --from=builder /build/dst /server

WORKDIR /server
VOLUME /server/data

RUN set -ex \
    && apk add --update --no-cache --virtual .gyp \
           g++ \
           make \
           py3-pip \
    && npm ci --omit=dev \
    && apk del .gyp \
    && rm -rf /tmp/* /var/cache/apk/*

# ENV NODE_ENV 'production'
# ENV LOG_PATH '/server/data/logs'

# ENV PORT 9527
# ENV BIND_IP '0.0.0.0'

# ENV PROXY_HEADER 'x-real-ip'
# ENV SERVER_NAME 'My Sync Server'
# ENV MAX_SNAPSHOT_NUM '10'
# ENV LIST_ADD_MUSIC_LOCATION_TYPE 'top'
# ENV LX_USER_user1 '123.123'
# ENV LX_USER_user2 '{ "password": "123.456", "maxSnapshotNum": 10, "list.addMusicLocationType": "top" }'

EXPOSE 9527

CMD ["npm","start"]