Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f8c8291674 | |||
| a879ee84bf | |||
| 58f82399ed |
+4
-1
@@ -1,3 +1,6 @@
|
|||||||
/README.md
|
/README.md
|
||||||
/.env**
|
/.env**
|
||||||
/.gitignore
|
/.gitignore
|
||||||
|
/.git/**
|
||||||
|
.DS_Store
|
||||||
|
npm-debug.log
|
||||||
+21
-22
@@ -1,34 +1,33 @@
|
|||||||
# Load Node.js
|
# Load Node.js
|
||||||
FROM --platform=$BUILDPLATFORM node:20-bullseye-slim
|
FROM --platform=$BUILDPLATFORM node:20-bullseye-slim
|
||||||
|
|
||||||
# Set working directory
|
# Set working directory & Set owner
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
RUN chown -R node:node /app
|
||||||
|
|
||||||
# Run as root
|
# Run as root & package install
|
||||||
USER root
|
USER root
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y \
|
||||||
|
build-essential \
|
||||||
|
python3 \
|
||||||
|
libsqlite3-dev && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Install packages
|
# Run as node
|
||||||
RUN apt-get update
|
USER node
|
||||||
RUN apt-get install -y build-essential
|
|
||||||
RUN apt-get install -y python3
|
# Install deps
|
||||||
RUN apt-get install -y libsqlite3-dev
|
COPY --chown=node:node ./src/package*.json ./
|
||||||
RUN rm -rf /var/lib/apt/lists/*
|
RUN npm ci
|
||||||
|
|
||||||
# Copy source
|
# Copy source
|
||||||
COPY ./src ./
|
COPY --chown=node:node ./src ./
|
||||||
|
|
||||||
# Install dependencies
|
|
||||||
RUN npm ci --unsafe-perm
|
|
||||||
|
|
||||||
# Init replied_ids.json
|
|
||||||
RUN echo "[]" > replied_ids.json
|
RUN echo "[]" > replied_ids.json
|
||||||
|
|
||||||
# Copy entrypoint
|
# entrypoint
|
||||||
COPY ./entrypoint.sh /app/docker-entrypoint.sh
|
COPY --chown=node:node ./entrypoint.sh /app/docker-entrypoint.sh
|
||||||
RUN chmod +x /app/docker-entrypoint.sh
|
RUN sed -i 's/\r$//' /app/docker-entrypoint.sh && \
|
||||||
|
chmod +x /app/docker-entrypoint.sh
|
||||||
|
|
||||||
# Change line break
|
ENTRYPOINT ["/app/docker-entrypoint.sh"]
|
||||||
RUN sed -i 's/\r$//' /app/docker-entrypoint.sh
|
|
||||||
|
|
||||||
# Run
|
|
||||||
ENTRYPOINT ["/app/docker-entrypoint.sh"]
|
|
||||||
|
|||||||
@@ -7,13 +7,15 @@
|
|||||||
### Use public image
|
### Use public image
|
||||||
```bash
|
```bash
|
||||||
touch memory.db
|
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**
|
> **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`を確認してください。
|
||||||
|
|||||||
+20
-16
@@ -2,30 +2,34 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Check required env
|
# Check required env
|
||||||
if [ -z "$UWUZU_HOST" ] || [ -z "$UWUZU_TOKEN" ] ||
|
[ -z "$UWUZU_HOST" ] || [ -z "$UWUZU_TOKEN" ] && {
|
||||||
[ -z "$TWEET_ENABLED" ] || [ -z "$CHECK_INTERVAL" ] || [ -z "$THINK_OUTPUT_ENABLED" ]; then
|
echo "Error: Required environment variable not set"
|
||||||
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
|
||||||
if [ ! -s /app/memory.db ]; then \
|
[ -s /app/memory.db ] || {
|
||||||
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 <<EOF > /app/config.json
|
cat > /app/config.json <<EOF
|
||||||
{
|
{
|
||||||
"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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user