1 Commits

Author SHA1 Message Date
last2014 fba2c89392 Merge pull request 'v1.1.0' (#7) from develop into main
Reviewed-on: #7
2025-12-18 14:27:13 +00:00
4 changed files with 42 additions and 50 deletions
+1 -4
View File
@@ -1,6 +1,3 @@
/README.md /README.md
/.env** /.env**
/.gitignore /.gitignore
/.git/**
.DS_Store
npm-debug.log
+22 -21
View File
@@ -1,33 +1,34 @@
# Load Node.js # Load Node.js
FROM --platform=$BUILDPLATFORM node:20-bullseye-slim FROM --platform=$BUILDPLATFORM node:20-bullseye-slim
# Set working directory & Set owner # Set working directory
WORKDIR /app WORKDIR /app
RUN chown -R node:node /app
# Run as root & package install # Run as root
USER root USER root
RUN apt-get update && \
apt-get install -y \
build-essential \
python3 \
libsqlite3-dev && \
rm -rf /var/lib/apt/lists/*
# Run as node # Install packages
USER node RUN apt-get update
RUN apt-get install -y build-essential
# Install deps RUN apt-get install -y python3
COPY --chown=node:node ./src/package*.json ./ RUN apt-get install -y libsqlite3-dev
RUN npm ci RUN rm -rf /var/lib/apt/lists/*
# Copy source # Copy source
COPY --chown=node:node ./src ./ COPY ./src ./
# Install dependencies
RUN npm ci --unsafe-perm
# Init replied_ids.json
RUN echo "[]" > replied_ids.json RUN echo "[]" > replied_ids.json
# entrypoint # Copy entrypoint
COPY --chown=node:node ./entrypoint.sh /app/docker-entrypoint.sh COPY ./entrypoint.sh /app/docker-entrypoint.sh
RUN sed -i 's/\r$//' /app/docker-entrypoint.sh && \ RUN chmod +x /app/docker-entrypoint.sh
chmod +x /app/docker-entrypoint.sh
ENTRYPOINT ["/app/docker-entrypoint.sh"] # Change line break
RUN sed -i 's/\r$//' /app/docker-entrypoint.sh
# Run
ENTRYPOINT ["/app/docker-entrypoint.sh"]
+3 -5
View File
@@ -7,15 +7,13 @@
### Use public image ### Use public image
```bash ```bash
touch memory.db touch memory.db
echo "[]" > replied_ids.json docker run -d --restart=always -v ./memory.db:/app/memory.db -e UWUZU_HOST=uwuzu.example.com -e UWUZU_TOKEN=APITOKEN -e TWEET_ENABLED=true -e CHECK_INTERVAL=300 -e THINK_OUTPUT_ENABLED=false --name rana gitea.last2014.com/last2014/rana-for-docker:latest
docker run -d --restart=always -v ./memory.db:/app/memory.db -v ./replied_ids.json:/app/replied_ids.json -e UWUZU_HOST=uwuzu.example.com -e UWUZU_TOKEN=APITOKEN -e TWEET_ENABLED=true -e CHECK_INTERVAL=300 -e THINK_OUTPUT_ENABLED=false --name rana gitea.last2014.com/last2014/rana-for-docker:latest
``` ```
で動きます。 で動きます。
/app/memory.dbと/app/replied_ids.jsonが記憶になっているのでvolumesにしてください。 /app/memory.dbが記憶になっているのでvolumesにしてください。
> **WARNING** > **WARNING**
> [#3](https://gitea.last2014.com/last2014/rana-for-docker/issues/3)の通り`touch`コマンドをサボると起動できません。 > [#3](https://gitea.last2014.com/last2014/rana-for-docker/issues/3)の通り`touch`コマンドをサボると起動できません。
> また、echoをサボっても動きますが起動時にエラーが出ます。
> **WARNING** > **WARNING**
>環境変数への値は`.env.example`を確認してください。 >環境変数への値は`.env.example`を確認してください。
+16 -20
View File
@@ -2,34 +2,30 @@
set -e set -e
# Check required env # Check required env
[ -z "$UWUZU_HOST" ] || [ -z "$UWUZU_TOKEN" ] && { if [ -z "$UWUZU_HOST" ] || [ -z "$UWUZU_TOKEN" ] ||
echo "Error: Required environment variable not set" [ -z "$TWEET_ENABLED" ] || [ -z "$CHECK_INTERVAL" ] || [ -z "$THINK_OUTPUT_ENABLED" ]; then
echo "Error: The environment variable is not set"
exit 1 exit 1
} fi
# Set default env
: "${TWEET_ENABLED:=true}"
: "${CHECK_INTERVAL:=300}"
: "${THINK_OUTPUT_ENABLED:=false}"
# Change line break # Change line break
find /app -type d -name node_modules -prune -o \ find /app -type d -name "node_modules" -prune -o \
-type f -name '*.js' -exec sed -i 's/\r$//' {} + -type f -name "*.js" -exec sed -i 's/\r$//' {} \;
# Copy default memory # Copy default memory
[ -s /app/memory.db ] || { if [ ! -s /app/memory.db ]; then \
cp /app/memory.default.db /app/memory.db cp /app/memory.default.db /app/memory.db; \
rm -f /app/memory.default.db rm -f /app/memory.default.db; \
} fi
# Create config.json # Create config.json
cat > /app/config.json <<EOF cat <<EOF > /app/config.json
{ {
"host": "$UWUZU_HOST", "host": "${UWUZU_HOST}",
"api_token": "$UWUZU_TOKEN", "api_token": "${UWUZU_TOKEN}",
"random_ueuse": $TWEET_ENABLED, "random_ueuse": ${TWEET_ENABLED},
"check_interval": $CHECK_INTERVAL, "check_interval": ${CHECK_INTERVAL},
"rana_core_log": $THINK_OUTPUT_ENABLED "rana_core_log": ${THINK_OUTPUT_ENABLED}
} }
EOF EOF