Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f8c8291674 | |||
| a879ee84bf | |||
| 58f82399ed |
+4
-1
@@ -1,3 +1,6 @@
|
||||
/README.md
|
||||
/.env**
|
||||
/.gitignore
|
||||
/.gitignore
|
||||
/.git/**
|
||||
.DS_Store
|
||||
npm-debug.log
|
||||
+21
-22
@@ -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"]
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user