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