Browse Source
docker: fix /data ownership and permission (#7451)
docker: fix /data ownership and permission (#7451)
* docker: fix /data ownership and permission * chown if not owned by seaweed user * fix github tests * comments * fix the unquoted variables in the case pattern matching * Update docker/entrypoint.sh Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Update docker/entrypoint.sh Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Update entrypoint.sh * Update entrypoint.sh * Update docker/entrypoint.sh Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>pull/7454/head
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 135 additions and 20 deletions
-
7docker/Dockerfile.e2e
-
6docker/Dockerfile.go_build
-
6docker/Dockerfile.local
-
6docker/Dockerfile.rocksdb_large
-
6docker/Dockerfile.rocksdb_large_local
-
6docker/Makefile
-
32docker/entrypoint.sh
-
86docker/entrypoint_e2e.sh
@ -0,0 +1,86 @@ |
|||||
|
#!/bin/bash |
||||
|
set -e |
||||
|
|
||||
|
# Simplified entrypoint for e2e testing |
||||
|
# |
||||
|
# This script intentionally runs as root for e2e test environments to: |
||||
|
# 1. Simplify test setup and avoid permission-related test failures |
||||
|
# 2. Eliminate dependency on Alpine-specific tools (su-exec) since we use Ubuntu base |
||||
|
# 3. Focus testing on application logic rather than container security |
||||
|
# |
||||
|
# IMPORTANT: Production deployments should use Dockerfile.go_build with proper |
||||
|
# user isolation via su-exec. This simplified approach is ONLY for testing. |
||||
|
|
||||
|
isArgPassed() { |
||||
|
arg="$1" |
||||
|
argWithEqualSign="$1=" |
||||
|
shift |
||||
|
while [ $# -gt 0 ]; do |
||||
|
passedArg="$1" |
||||
|
shift |
||||
|
case $passedArg in |
||||
|
"$arg") |
||||
|
return 0 |
||||
|
;; |
||||
|
"$argWithEqualSign"*) |
||||
|
return 0 |
||||
|
;; |
||||
|
esac |
||||
|
done |
||||
|
return 1 |
||||
|
} |
||||
|
|
||||
|
case "$1" in |
||||
|
|
||||
|
'master') |
||||
|
ARGS="-mdir=/data -volumePreallocate -volumeSizeLimitMB=1024" |
||||
|
shift |
||||
|
exec /usr/bin/weed -logtostderr=true master $ARGS "$@" |
||||
|
;; |
||||
|
|
||||
|
'volume') |
||||
|
ARGS="-dir=/data -max=0" |
||||
|
if isArgPassed "-max" "$@"; then |
||||
|
ARGS="-dir=/data" |
||||
|
fi |
||||
|
shift |
||||
|
exec /usr/bin/weed -logtostderr=true volume $ARGS "$@" |
||||
|
;; |
||||
|
|
||||
|
'server') |
||||
|
ARGS="-dir=/data -volume.max=0 -master.volumePreallocate -master.volumeSizeLimitMB=1024" |
||||
|
if isArgPassed "-volume.max" "$@"; then |
||||
|
ARGS="-dir=/data -master.volumePreallocate -master.volumeSizeLimitMB=1024" |
||||
|
fi |
||||
|
shift |
||||
|
exec /usr/bin/weed -logtostderr=true server $ARGS "$@" |
||||
|
;; |
||||
|
|
||||
|
'filer') |
||||
|
ARGS="" |
||||
|
shift |
||||
|
exec /usr/bin/weed -logtostderr=true filer $ARGS "$@" |
||||
|
;; |
||||
|
|
||||
|
's3') |
||||
|
ARGS="-domainName=$S3_DOMAIN_NAME -key.file=$S3_KEY_FILE -cert.file=$S3_CERT_FILE" |
||||
|
shift |
||||
|
exec /usr/bin/weed -logtostderr=true s3 $ARGS "$@" |
||||
|
;; |
||||
|
|
||||
|
'mount') |
||||
|
shift |
||||
|
exec /usr/bin/weed -logtostderr=true mount "$@" |
||||
|
;; |
||||
|
|
||||
|
'shell') |
||||
|
ARGS="-cluster=$SHELL_CLUSTER -filer=$SHELL_FILER -filerGroup=$SHELL_FILER_GROUP -master=$SHELL_MASTER -options=$SHELL_OPTIONS" |
||||
|
shift |
||||
|
exec echo "$@" | /usr/bin/weed -logtostderr=true shell $ARGS |
||||
|
;; |
||||
|
|
||||
|
*) |
||||
|
exec /usr/bin/weed "$@" |
||||
|
;; |
||||
|
esac |
||||
|
|
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue