diff options
Diffstat (limited to 'docker')
-rw-r--r-- | docker/dev/Dockerfile | 9 | ||||
-rw-r--r-- | docker/dev/docker-compose.yml | 2 | ||||
-rwxr-xr-x | docker/federation-test/run-tests.sh | 4 | ||||
-rw-r--r-- | docker/federation/docker-compose.yml | 3 | ||||
-rw-r--r-- | docker/prod/Dockerfile | 10 | ||||
-rw-r--r-- | docker/prod/docker-compose.yml | 4 | ||||
-rw-r--r-- | docker/prod/migrate-pictshare-to-pictrs.bash | 46 |
7 files changed, 64 insertions, 14 deletions
diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile index 82a03f3c..4445e4fe 100644 --- a/docker/dev/Dockerfile +++ b/docker/dev/Dockerfile @@ -17,13 +17,20 @@ WORKDIR /app RUN sudo chown -R rust:rust . RUN USER=root cargo new server WORKDIR /app/server +RUN mkdir -p lemmy_db/src/ lemmy_utils/src/ COPY server/Cargo.toml server/Cargo.lock ./ +COPY server/lemmy_db/Cargo.toml ./lemmy_db/ +COPY server/lemmy_utils/Cargo.toml ./lemmy_utils/ RUN sudo chown -R rust:rust . RUN mkdir -p ./src/bin \ - && echo 'fn main() { println!("Dummy") }' > ./src/bin/main.rs + && echo 'fn main() { println!("Dummy") }' > ./src/bin/main.rs \ + && cp ./src/bin/main.rs ./lemmy_db/src/main.rs \ + && cp ./src/bin/main.rs ./lemmy_utils/src/main.rs RUN cargo build RUN rm -f ./target/x86_64-unknown-linux-musl/release/deps/lemmy_server* COPY server/src ./src/ +COPY server/lemmy_db ./lemmy_db/ +COPY server/lemmy_utils ./lemmy_utils/ COPY server/migrations ./migrations/ # Build for debug diff --git a/docker/dev/docker-compose.yml b/docker/dev/docker-compose.yml index fc6e2105..51a3ecda 100644 --- a/docker/dev/docker-compose.yml +++ b/docker/dev/docker-compose.yml @@ -40,7 +40,7 @@ services: restart: always iframely: - image: jolt/iframely:v1.4.3 + image: dogbin/iframely:latest ports: - "127.0.0.1:8061:80" volumes: diff --git a/docker/federation-test/run-tests.sh b/docker/federation-test/run-tests.sh index 57c6cc8f..3848414b 100755 --- a/docker/federation-test/run-tests.sh +++ b/docker/federation-test/run-tests.sh @@ -1,6 +1,10 @@ #!/bin/bash set -e +# make sure there are no old containers or old data around +sudo docker-compose --file ../federation/docker-compose.yml --project-directory . down +sudo rm -rf volumes + pushd ../../server/ cargo build popd diff --git a/docker/federation/docker-compose.yml b/docker/federation/docker-compose.yml index 51a37b91..c552d18f 100644 --- a/docker/federation/docker-compose.yml +++ b/docker/federation/docker-compose.yml @@ -107,6 +107,7 @@ services: - ./volumes/postgres_gamma:/var/lib/postgresql/data iframely: - image: jolt/iframely:v1.4.3 + image: dogbin/iframely:latest volumes: - ../iframely.config.local.js:/iframely/config.local.js:ro + restart: always diff --git a/docker/prod/Dockerfile b/docker/prod/Dockerfile index 54485a37..9000ca3a 100644 --- a/docker/prod/Dockerfile +++ b/docker/prod/Dockerfile @@ -10,13 +10,19 @@ WORKDIR /app RUN sudo chown -R rust:rust . RUN USER=root cargo new server WORKDIR /app/server +RUN mkdir -p lemmy_db/src/ lemmy_utils/src/ COPY --chown=rust:rust server/Cargo.toml server/Cargo.lock ./ -#RUN sudo chown -R rust:rust . +COPY --chown=rust:rust server/lemmy_db/Cargo.toml ./lemmy_db/ +COPY --chown=rust:rust server/lemmy_utils/Cargo.toml ./lemmy_utils/ RUN mkdir -p ./src/bin \ - && echo 'fn main() { println!("Dummy") }' > ./src/bin/main.rs + && echo 'fn main() { println!("Dummy") }' > ./src/bin/main.rs \ + && cp ./src/bin/main.rs ./lemmy_db/src/main.rs \ + && cp ./src/bin/main.rs ./lemmy_utils/src/main.rs RUN cargo build --release RUN rm -f ./target/$CARGO_BUILD_TARGET/$RUSTRELEASEDIR/deps/lemmy_server* COPY --chown=rust:rust server/src ./src/ +COPY --chown=rust:rust server/lemmy_db ./lemmy_db/ +COPY --chown=rust:rust server/lemmy_utils ./lemmy_utils/ COPY --chown=rust:rust server/migrations ./migrations/ # build for release diff --git a/docker/prod/docker-compose.yml b/docker/prod/docker-compose.yml index 5ccb1ec5..6c3bccb0 100644 --- a/docker/prod/docker-compose.yml +++ b/docker/prod/docker-compose.yml @@ -12,7 +12,7 @@ services: restart: always lemmy: - image: dessalines/lemmy:v0.7.8 + image: dessalines/lemmy:v0.7.16 ports: - "127.0.0.1:8536:8536" restart: always @@ -35,7 +35,7 @@ services: restart: always iframely: - image: jolt/iframely:v1.4.3 + image: dogbin/iframely:latest ports: - "127.0.0.1:8061:80" volumes: diff --git a/docker/prod/migrate-pictshare-to-pictrs.bash b/docker/prod/migrate-pictshare-to-pictrs.bash index 8229eb28..667183a0 100644 --- a/docker/prod/migrate-pictshare-to-pictrs.bash +++ b/docker/prod/migrate-pictshare-to-pictrs.bash @@ -1,16 +1,21 @@ #!/bin/bash set -e -if [[ $(id -u) != 0 ]]; then +if [[ $(id -u) != 0 ]]; then echo "This migration needs to be run as root" exit fi -if [[ ! -f docker-compose.yml ]]; then +if [[ ! -f docker-compose.yml ]]; then echo "No docker-compose.yml found in current directory. Is this the right folder?" exit fi +if ! which jq > /dev/null; then + echo "jq must be installed to run this migration. On ubuntu systems, try 'sudo apt-get install jq'" + exit +fi + # Fixing pictrs permissions mkdir -p volumes/pictrs sudo chown -R 991:991 volumes/pictrs @@ -26,6 +31,8 @@ fi # echo "Stopping Lemmy so that users dont upload new images during the migration" # docker-compose stop lemmy +CRASHED_ON=() + pushd volumes/pictshare/ echo "Importing pictshare images to pict-rs..." IMAGE_NAMES=* @@ -34,11 +41,36 @@ for image in $IMAGE_NAMES; do if [[ ! -f $IMAGE_PATH ]]; then continue fi - echo -e "\nImporting $IMAGE_PATH" - ret=0 - curl --silent --fail -F "images[]=@$IMAGE_PATH" http://127.0.0.1:8537/import || ret=$? - if [[ $ret != 0 ]]; then - echo "Error for $IMAGE_PATH : $ret" + res=$(curl -s -F "images[]=@$IMAGE_PATH" http://127.0.0.1:8537/import | jq .msg) + if [ "${res}" == "" ]; then + echo -n "C" >&2 + echo "" + CRASHED_ON+=("${IMAGE_PATH}") + echo "Failed to import $IMAGE_PATH with no error message" + echo " assuming crash, sleeping" + sleep 10 + continue + fi + if [ "${res}" != "\"ok\"" ]; then + echo -n "F" >&2 + echo "" + echo "Failed to import $IMAGE_PATH" + echo " Reason: ${res}" + else + echo -n "." >&2 + fi +done + +for image in ${CRASHED_ON[@]}; do + echo "Retrying ${image}" + res=$(curl -s -F "images[]=@$IMAGE_PATH" http://127.0.0.1:8537/import | jq .msg) + if [ "${res}" != "\"ok\"" ]; then + echo -n "F" >&2 + echo "" + echo "Failed to upload ${image} on 2nd attempt" + echo " Reason: ${res}" + else + echo -n "." >&2 fi done |