3 Commits

Author SHA1 Message Date
last2014 f8c8291674 Fix: permission 2025-12-19 23:11:53 +09:00
last2014 a879ee84bf Enhance: entrypoint 2025-12-19 22:21:14 +09:00
last2014 58f82399ed Enhance: dockerfile(many) / Fix: docker run command as README /
docker-ignored: /.git/** & .DS_Store & npm-debug.log
2025-12-19 22:15:00 +09:00
4 changed files with 50 additions and 42 deletions
+4 -1
View File
@@ -1,3 +1,6 @@
/README.md
/.env**
/.gitignore
/.gitignore
/.git/**
.DS_Store
npm-debug.log
+21 -22
View File
@@ -1,34 +1,33 @@
# Load Node.js
FROM --platform=$BUILDPLATFORM node:20-bullseye-slim
# Set working directory
# Set working directory & Set owner
WORKDIR /app
RUN chown -R node:node /app
# Run as root
# Run as root & package install
USER root
RUN apt-get update && \
apt-get install -y \
build-essential \
python3 \
libsqlite3-dev && \
rm -rf /var/lib/apt/lists/*
# Install packages
RUN apt-get update
RUN apt-get install -y build-essential
RUN apt-get install -y python3
RUN apt-get install -y libsqlite3-dev
RUN rm -rf /var/lib/apt/lists/*
# Run as node
USER node
# Install deps
COPY --chown=node:node ./src/package*.json ./
RUN npm ci
# Copy source
COPY ./src ./
# Install dependencies
RUN npm ci --unsafe-perm
# Init replied_ids.json
COPY --chown=node:node ./src ./
RUN echo "[]" > replied_ids.json
# Copy entrypoint
COPY ./entrypoint.sh /app/docker-entrypoint.sh
RUN chmod +x /app/docker-entrypoint.sh
# entrypoint
COPY --chown=node:node ./entrypoint.sh /app/docker-entrypoint.sh
RUN sed -i 's/\r$//' /app/docker-entrypoint.sh && \
chmod +x /app/docker-entrypoint.sh
# Change line break
RUN sed -i 's/\r$//' /app/docker-entrypoint.sh
# Run
ENTRYPOINT ["/app/docker-entrypoint.sh"]
ENTRYPOINT ["/app/docker-entrypoint.sh"]
+5 -3
View File
@@ -7,13 +7,15 @@
### Use public image
```bash
touch memory.db
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
echo "[]" > replied_ids.json
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が記憶になっているのでvolumesにしてください。
/app/memory.dbと/app/replied_ids.jsonが記憶になっているのでvolumesにしてください。
> **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**
>環境変数への値は`.env.example`を確認してください。
+20 -16
View File
@@ -2,30 +2,34 @@
set -e
# Check required env
if [ -z "$UWUZU_HOST" ] || [ -z "$UWUZU_TOKEN" ] ||
[ -z "$TWEET_ENABLED" ] || [ -z "$CHECK_INTERVAL" ] || [ -z "$THINK_OUTPUT_ENABLED" ]; then
echo "Error: The environment variable is not set"
[ -z "$UWUZU_HOST" ] || [ -z "$UWUZU_TOKEN" ] && {
echo "Error: Required environment variable not set"
exit 1
fi
}
# Set default env
: "${TWEET_ENABLED:=true}"
: "${CHECK_INTERVAL:=300}"
: "${THINK_OUTPUT_ENABLED:=false}"
# Change line break
find /app -type d -name "node_modules" -prune -o \
-type f -name "*.js" -exec sed -i 's/\r$//' {} \;
find /app -type d -name node_modules -prune -o \
-type f -name '*.js' -exec sed -i 's/\r$//' {} +
# Copy default memory
if [ ! -s /app/memory.db ]; then \
cp /app/memory.default.db /app/memory.db; \
rm -f /app/memory.default.db; \
fi
[ -s /app/memory.db ] || {
cp /app/memory.default.db /app/memory.db
rm -f /app/memory.default.db
}
# Create config.json
cat <<EOF > /app/config.json
cat > /app/config.json <<EOF
{
"host": "${UWUZU_HOST}",
"api_token": "${UWUZU_TOKEN}",
"random_ueuse": ${TWEET_ENABLED},
"check_interval": ${CHECK_INTERVAL},
"rana_core_log": ${THINK_OUTPUT_ENABLED}
"host": "$UWUZU_HOST",
"api_token": "$UWUZU_TOKEN",
"random_ueuse": $TWEET_ENABLED,
"check_interval": $CHECK_INTERVAL,
"rana_core_log": $THINK_OUTPUT_ENABLED
}
EOF