Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| fba2c89392 |
@@ -1,6 +1,3 @@
|
|||||||
/README.md
|
/README.md
|
||||||
/.env**
|
/.env**
|
||||||
/.gitignore
|
/.gitignore
|
||||||
/.git/**
|
|
||||||
.DS_Store
|
|
||||||
npm-debug.log
|
|
||||||
+21
-20
@@ -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
|
|
||||||
|
|
||||||
|
# Change line break
|
||||||
|
RUN sed -i 's/\r$//' /app/docker-entrypoint.sh
|
||||||
|
|
||||||
|
# Run
|
||||||
ENTRYPOINT ["/app/docker-entrypoint.sh"]
|
ENTRYPOINT ["/app/docker-entrypoint.sh"]
|
||||||
@@ -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
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user