orztv commited on
Commit
391bed2
·
1 Parent(s): 40f180f
Files changed (1) hide show
  1. Dockerfile +12 -10
Dockerfile CHANGED
@@ -1,10 +1,8 @@
1
  FROM nocodb/nocodb:latest
2
 
3
- ARG NC_S3_BUCKET_NAME
4
  ARG NC_S3_REGION
5
  ARG NC_S3_ENDPOINT
6
  ARG NC_S3_ACCESS_KEY
7
- ARG NC_S3_ACCESS_SECRET
8
 
9
  # 创建数据目录、设置权限并安装 PostgreSQL 和 Redis
10
  RUN adduser -D -u 1000 nocodb && \
@@ -27,9 +25,13 @@ RUN adduser -D -u 1000 nocodb && \
27
  chown -R nocodb:nocodb /etc/redis.conf /var/log/redis /var/run/redis /usr/app/data /var/lib/redis && \
28
  apk add --update --no-cache dasel dumb-init nodejs
29
 
30
- RUN --mount=type=secret,id=NC_S3_ACCESS_SECRET,mode=0444,required=true \
31
- --mount=type=secret,id=NC_S3_BUCKET_NAME,mode=0444,required=true
32
-
 
 
 
 
33
 
34
  # 复制启动脚本和 Node.js 示例程序并设置权限
35
  COPY docker/startup.sh /usr/src/appEntry/startup.sh
@@ -40,6 +42,7 @@ USER nocodb
40
 
41
  WORKDIR /usr/src/app
42
 
 
43
  ENV LITESTREAM_S3_SKIP_VERIFY=false \
44
  LITESTREAM_RETENTION=1440h \
45
  LITESTREAM_RETENTION_CHECK_INTERVAL=72h \
@@ -50,16 +53,15 @@ ENV LITESTREAM_S3_SKIP_VERIFY=false \
50
  NODE_ENV=production \
51
  NC_ALLOW_LOCAL_HOOKS=true \
52
  NC_REDIS_URL="redis://:redis_password@localhost:6379/4" \
53
- S3_BUCKET_NAME=${cat /run/secrets/S3_BUCKET_NAME} \
54
  S3_REGION=${NC_S3_REGION} \
55
  S3_ENDPOINT=${NC_S3_ENDPOINT} \
56
  S3_ACCESS_KEY=${NC_S3_ACCESS_KEY} \
57
- S3_ACCESS_SECRET=${cat /run/secrets/NC_S3_ACCESS_SECRET} \
58
- LITESTREAM_S3_BUCKET=${cat /run/secrets/S3_BUCKET_NAME} \
59
  LITESTREAM_S3_REGION=${NC_S3_REGION} \
60
  LITESTREAM_S3_ENDPOINT=${NC_S3_ENDPOINT} \
61
- LITESTREAM_S3_ACCESS_KEY_ID=${NC_S3_ACCESS_KEY} \
62
- LITESTREAM_S3_SECRET_ACCESS_KEY=${cat /run/secrets/NC_S3_ACCESS_SECRET}
 
 
63
 
64
  EXPOSE 8080
65
 
 
1
  FROM nocodb/nocodb:latest
2
 
 
3
  ARG NC_S3_REGION
4
  ARG NC_S3_ENDPOINT
5
  ARG NC_S3_ACCESS_KEY
 
6
 
7
  # 创建数据目录、设置权限并安装 PostgreSQL 和 Redis
8
  RUN adduser -D -u 1000 nocodb && \
 
25
  chown -R nocodb:nocodb /etc/redis.conf /var/log/redis /var/run/redis /usr/app/data /var/lib/redis && \
26
  apk add --update --no-cache dasel dumb-init nodejs
27
 
28
+ # 使用 secret 获取 S3 bucket 名称和访问密钥
29
+ RUN --mount=type=secret,id=NC_S3_BUCKET_NAME,mode=0444,required=true \
30
+ --mount=type=secret,id=NC_S3_ACCESS_SECRET,mode=0444,required=true \
31
+ echo "S3_BUCKET_NAME=$(cat /run/secrets/NC_S3_BUCKET_NAME)" >> /tmp/s3_env && \
32
+ echo "S3_ACCESS_SECRET=$(cat /run/secrets/NC_S3_ACCESS_SECRET)" >> /tmp/s3_env && \
33
+ echo "LITESTREAM_S3_BUCKET=$(cat /run/secrets/NC_S3_BUCKET_NAME)" >> /tmp/s3_env && \
34
+ echo "LITESTREAM_S3_ACCESS_KEY_ID=$(cat /run/secrets/NC_S3_ACCESS_KEY)" >> /tmp/s3_env
35
 
36
  # 复制启动脚本和 Node.js 示例程序并设置权限
37
  COPY docker/startup.sh /usr/src/appEntry/startup.sh
 
42
 
43
  WORKDIR /usr/src/app
44
 
45
+ # 设置环境变量,包括从 secret 获取的值
46
  ENV LITESTREAM_S3_SKIP_VERIFY=false \
47
  LITESTREAM_RETENTION=1440h \
48
  LITESTREAM_RETENTION_CHECK_INTERVAL=72h \
 
53
  NODE_ENV=production \
54
  NC_ALLOW_LOCAL_HOOKS=true \
55
  NC_REDIS_URL="redis://:redis_password@localhost:6379/4" \
 
56
  S3_REGION=${NC_S3_REGION} \
57
  S3_ENDPOINT=${NC_S3_ENDPOINT} \
58
  S3_ACCESS_KEY=${NC_S3_ACCESS_KEY} \
 
 
59
  LITESTREAM_S3_REGION=${NC_S3_REGION} \
60
  LITESTREAM_S3_ENDPOINT=${NC_S3_ENDPOINT} \
61
+ LITESTREAM_S3_ACCESS_KEY_ID=${NC_S3_ACCESS_KEY}
62
+
63
+ # 从临时文件中读取 secret 值并设置为环境变量
64
+ ENV $(cat /tmp/s3_env | xargs)
65
 
66
  EXPOSE 8080
67