diff options
author | Dessalines <tyhou13@gmx.com> | 2020-06-12 17:51:37 -0400 |
---|---|---|
committer | Dessalines <tyhou13@gmx.com> | 2020-06-12 17:51:37 -0400 |
commit | 5594bed6a8832b3fcba48966752cf0d5859cf1d4 (patch) | |
tree | 5b2d6ecaad4937b0c1ad35dfad397f4b83f50a37 /docker/dev | |
parent | f647f2ae6cb187be08c6fd0f7daeb51e4093145a (diff) | |
parent | 7cb7c1f0f9a77c3019200edffa5381f8a4d76e55 (diff) |
Merge branch 'master' into use-pictrs-1
Diffstat (limited to 'docker/dev')
-rw-r--r-- | docker/dev/Dockerfile | 16 | ||||
-rw-r--r-- | docker/dev/Dockerfile.aarch64 | 79 | ||||
-rw-r--r-- | docker/dev/Dockerfile.armv7hf | 79 | ||||
-rw-r--r-- | docker/dev/Dockerfile.libc | 88 | ||||
-rwxr-xr-x | docker/dev/deploy.sh | 76 | ||||
-rwxr-xr-x | docker/dev/docker_update.sh | 4 | ||||
-rwxr-xr-x | docker/dev/test_deploy.sh | 4 |
7 files changed, 16 insertions, 330 deletions
diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile index d9ffc2f3..3ebfa097 100644 --- a/docker/dev/Dockerfile +++ b/docker/dev/Dockerfile @@ -12,6 +12,10 @@ RUN yarn build FROM ekidd/rust-musl-builder:1.42.0-openssl11 as rust +# Install lld +RUN sudo apt-get update -y +RUN sudo apt-get install -y lld + # Cache deps WORKDIR /app RUN sudo chown -R rust:rust . @@ -21,17 +25,13 @@ COPY server/Cargo.toml server/Cargo.lock ./ RUN sudo chown -R rust:rust . RUN mkdir -p ./src/bin \ && echo 'fn main() { println!("Dummy") }' > ./src/bin/main.rs -RUN cargo build --release +RUN RUSTFLAGS="-Clink-arg=-fuse-ld=lld" cargo build RUN rm -f ./target/x86_64-unknown-linux-musl/release/deps/lemmy_server* COPY server/src ./src/ COPY server/migrations ./migrations/ -# Build for release -RUN cargo build --frozen --release - -# Get diesel-cli on there just in case -# RUN cargo install diesel_cli --no-default-features --features postgres - +# Build for debug +RUN RUSTFLAGS="-Clink-arg=-fuse-ld=lld" cargo build FROM ekidd/rust-musl-builder:1.42.0-openssl11 as docs WORKDIR /app @@ -47,7 +47,7 @@ RUN apk add libpq # Copy resources COPY server/config/defaults.hjson /config/defaults.hjson -COPY --from=rust /app/server/target/x86_64-unknown-linux-musl/release/lemmy_server /app/lemmy +COPY --from=rust /app/server/target/x86_64-unknown-linux-musl/debug/lemmy_server /app/lemmy COPY --from=docs /app/docs/book/ /app/dist/documentation/ COPY --from=node /app/ui/dist /app/dist diff --git a/docker/dev/Dockerfile.aarch64 b/docker/dev/Dockerfile.aarch64 deleted file mode 100644 index 9636a590..00000000 --- a/docker/dev/Dockerfile.aarch64 +++ /dev/null @@ -1,79 +0,0 @@ -FROM node:10-jessie as node - -WORKDIR /app/ui - -# Cache deps -COPY ui/package.json ui/yarn.lock ./ -RUN yarn install --pure-lockfile - -# Build -COPY ui /app/ui -RUN yarn build - - -# contains qemu-*-static for cross-compilation -FROM multiarch/qemu-user-static as qemu - - -FROM arm64v8/rust:1.40-buster as rust - -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin -#COPY --from=qemu /usr/bin/qemu-arm-static /usr/bin - - -# Install musl -#RUN apt-get update && apt-get install -y mc -#RUN apt-get install -y musl-tools mc -#libpq-dev mc -#RUN rustup target add ${TARGET} - -# Cache deps -WORKDIR /app -RUN USER=root cargo new server -WORKDIR /app/server -COPY server/Cargo.toml server/Cargo.lock ./ -RUN mkdir -p ./src/bin \ - && echo 'fn main() { println!("Dummy") }' > ./src/bin/main.rs -RUN cargo build --release -# RUN cargo build -COPY server/src ./src/ -COPY server/migrations ./migrations/ -RUN rm -f ./target/release/deps/lemmy_server* ; rm -f ./target/debug/deps/lemmy_server* - - -# build for release -RUN cargo build --frozen --release -# RUN cargo build --frozen - -# Get diesel-cli on there just in case -# RUN cargo install diesel_cli --no-default-features --features postgres - -# RUN cp /app/server/target/debug/lemmy_server /app/server/ready -RUN cp /app/server/target/release/lemmy_server /app/server/ready - -#FROM alpine:3.10 -# debian because build with dynamic linking with debian:buster -FROM arm64v8/debian:buster-slim as lemmy - -#COPY --from=qemu /usr/bin/qemu-arm-static /usr/bin -COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin - -# Install libpq for postgres -#RUN apk add libpq -RUN apt-get update && apt-get install -y libpq5 - -RUN addgroup --gid 1000 lemmy -# for alpine -#RUN adduser -D -s /bin/sh -u 1000 -G lemmy lemmy -# for debian -RUN adduser --disabled-password --shell /bin/sh --uid 1000 --ingroup lemmy lemmy - -# Copy resources -COPY server/config/defaults.hjson /config/defaults.hjson -COPY --from=rust /app/server/ready /app/lemmy -COPY --from=node /app/ui/dist /app/dist - -RUN chown lemmy:lemmy /app/lemmy -USER lemmy -EXPOSE 8536 -CMD ["/app/lemmy"] diff --git a/docker/dev/Dockerfile.armv7hf b/docker/dev/Dockerfile.armv7hf deleted file mode 100644 index c2c9084c..00000000 --- a/docker/dev/Dockerfile.armv7hf +++ /dev/null @@ -1,79 +0,0 @@ -FROM node:10-jessie as node - -WORKDIR /app/ui - -# Cache deps -COPY ui/package.json ui/yarn.lock ./ -RUN yarn install --pure-lockfile - -# Build -COPY ui /app/ui -RUN yarn build - - -# contains qemu-*-static for cross-compilation -FROM multiarch/qemu-user-static as qemu - - -FROM arm32v7/rust:1.37-buster as rust - -#COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin -COPY --from=qemu /usr/bin/qemu-arm-static /usr/bin - - -# Install musl -#RUN apt-get update && apt-get install -y mc -#RUN apt-get install -y musl-tools mc -#libpq-dev mc -#RUN rustup target add ${TARGET} - -# Cache deps -WORKDIR /app -RUN USER=root cargo new server -WORKDIR /app/server -COPY server/Cargo.toml server/Cargo.lock ./ -RUN mkdir -p ./src/bin \ - && echo 'fn main() { println!("Dummy") }' > ./src/bin/main.rs -#RUN cargo build --release -# RUN cargo build - RUN RUSTFLAGS='-Ccodegen-units=1' cargo build -COPY server/src ./src/ -COPY server/migrations ./migrations/ -RUN rm -f ./target/release/deps/lemmy_server* ; rm -f ./target/debug/deps/lemmy_server* - - -# build for release -#RUN cargo build --frozen --release -RUN cargo build --frozen - -# Get diesel-cli on there just in case -# RUN cargo install diesel_cli --no-default-features --features postgres - -RUN cp /app/server/target/debug/lemmy_server /app/server/ready -#RUN cp /app/server/target/release/lemmy_server /app/server/ready - -#FROM alpine:3.10 -# debian because build with dynamic linking with debian:buster -FROM arm32v7/debian:buster-slim as lemmy - -COPY --from=qemu /usr/bin/qemu-arm-static /usr/bin - -# Install libpq for postgres -#RUN apk add libpq -RUN apt-get update && apt-get install -y libpq5 - -RUN addgroup --gid 1000 lemmy -# for alpine -#RUN adduser -D -s /bin/sh -u 1000 -G lemmy lemmy -# for debian -RUN adduser --disabled-password --shell /bin/sh --uid 1000 --ingroup lemmy lemmy - -# Copy resources -COPY server/config/defaults.hjson /config/defaults.hjson -COPY --from=rust /app/server/ready /app/lemmy -COPY --from=node /app/ui/dist /app/dist - -RUN chown lemmy:lemmy /app/lemmy -USER lemmy -EXPOSE 8536 -CMD ["/app/lemmy"] diff --git a/docker/dev/Dockerfile.libc b/docker/dev/Dockerfile.libc deleted file mode 100644 index 6348342f..00000000 --- a/docker/dev/Dockerfile.libc +++ /dev/null @@ -1,88 +0,0 @@ -# can be build on x64, arm32, arm64 platforms -# to build on target platform run -# docker build -f Dockerfile.libc -t dessalines/lemmy:version ../.. -# -# to use docker buildx run -# docker buildx build --platform linux/amd64,linux/arm64 -f Dockerfile.libc -t YOURNAME/lemmy --push ../.. - -FROM node:12-buster as node -# use this if use docker buildx -#FROM --platform=$BUILDPLATFORM node:12-buster as node - -WORKDIR /app/ui - -# Cache deps -COPY ui/package.json ui/yarn.lock ./ -RUN yarn install --pure-lockfile --network-timeout 100000 - -# Build -COPY ui /app/ui -RUN yarn build - - -FROM rust:1.42 as rust - -# Cache deps -WORKDIR /app - -RUN USER=root cargo new server -WORKDIR /app/server -COPY server/Cargo.toml server/Cargo.lock ./ -RUN mkdir -p ./src/bin \ - && echo 'fn main() { println!("Dummy") }' > ./src/bin/main.rs - - -RUN cargo build --release -#RUN cargo build && \ -# rm -f ./target/release/deps/lemmy_server* ; rm -f ./target/debug/deps/lemmy_server* -COPY server/src ./src/ -COPY server/migrations ./migrations/ - - -# build for release -# workaround for https://github.com/rust-lang/rust/issues/62896 -#RUN RUSTFLAGS='-Ccodegen-units=1' cargo build --release -RUN cargo build --release --frozen -#RUN cargo build --frozen - -# Get diesel-cli on there just in case -# RUN cargo install diesel_cli --no-default-features --features postgres - -# make result place always the same for lemmy container -RUN cp /app/server/target/release/lemmy_server /app/server/ready -#RUN cp /app/server/target/debug/lemmy_server /app/server/ready - - -FROM rust:1.42 as docs - -WORKDIR /app - -# Build docs -COPY docs ./docs -RUN cargo install mdbook -RUN mdbook build docs/ - - -#FROM alpine:3.10 -# debian because build with dynamic linking with debian:buster -FROM debian:buster as lemmy - -# Install libpq for postgres -#RUN apk add libpq -RUN apt-get update && apt-get install -y libpq5 -RUN addgroup --gid 1000 lemmy -# for alpine -#RUN adduser -D -s /bin/sh -u 1000 -G lemmy lemmy -# for debian -RUN adduser --disabled-password --shell /bin/sh --uid 1000 --ingroup lemmy lemmy - -# Copy resources -COPY server/config/defaults.hjson /config/defaults.hjson -COPY --from=node /app/ui/dist /app/dist -COPY --from=docs /app/docs/book/ /app/dist/documentation/ -COPY --from=rust /app/server/ready /app/lemmy - -RUN chown lemmy:lemmy /app/lemmy -USER lemmy -EXPOSE 8536 -CMD ["/app/lemmy"] diff --git a/docker/dev/deploy.sh b/docker/dev/deploy.sh deleted file mode 100755 index 09b21b0b..00000000 --- a/docker/dev/deploy.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/sh -git checkout master - -# Import translations -git fetch weblate -git merge weblate/master - -# Creating the new tag -new_tag="$1" -third_semver=$(echo $new_tag | cut -d "." -f 3) - -# Setting the version on the front end -cd ../../ -echo "export const version: string = '$new_tag';" > "ui/src/version.ts" -git add "ui/src/version.ts" -# Setting the version on the backend -echo "pub const VERSION: &str = \"$new_tag\";" > "server/src/version.rs" -git add "server/src/version.rs" -# Setting the version for Ansible -echo $new_tag > "ansible/VERSION" -git add "ansible/VERSION" - -cd docker/dev || exit - -# Changing the docker-compose prod -sed -i "s/dessalines\/lemmy:.*/dessalines\/lemmy:$new_tag/" ../prod/docker-compose.yml -sed -i "s/dessalines\/lemmy:.*/dessalines\/lemmy:$new_tag/" ../../ansible/templates/docker-compose.yml -git add ../prod/docker-compose.yml -git add ../../ansible/templates/docker-compose.yml - -# The commit -git commit -m"Version $new_tag" -git tag $new_tag - -# Rebuilding docker -docker-compose build -docker tag dev_lemmy:latest dessalines/lemmy:x64-$new_tag -docker push dessalines/lemmy:x64-$new_tag - -# Build for Raspberry Pi / other archs - -# Arm currently not working -# docker build -t lemmy:armv7hf -f Dockerfile.armv7hf ../../ -# docker tag lemmy:armv7hf dessalines/lemmy:armv7hf-$new_tag -# docker push dessalines/lemmy:armv7hf-$new_tag - -# aarch64 -# Only do this on major releases (IE the third semver is 0) -if [ $third_semver -eq 0 ]; then - # Registering qemu binaries - docker run --rm --privileged multiarch/qemu-user-static:register --reset - - docker build -t lemmy:aarch64 -f Dockerfile.aarch64 ../../ - docker tag lemmy:aarch64 dessalines/lemmy:arm64-$new_tag - docker push dessalines/lemmy:arm64-$new_tag -fi - -# Creating the manifest for the multi-arch build -if [ $third_semver -eq 0 ]; then - docker manifest create dessalines/lemmy:$new_tag \ - dessalines/lemmy:x64-$new_tag \ - dessalines/lemmy:arm64-$new_tag -else - docker manifest create dessalines/lemmy:$new_tag \ - dessalines/lemmy:x64-$new_tag -fi - -docker manifest push dessalines/lemmy:$new_tag - -# Push -git push origin $new_tag -git push - -# Pushing to any ansible deploys -cd ../../../lemmy-ansible || exit -ansible-playbook -i prod playbooks/site.yml --vault-password-file vault_pass diff --git a/docker/dev/docker_update.sh b/docker/dev/docker_update.sh index 9d0f4542..21e92ba8 100755 --- a/docker/dev/docker_update.sh +++ b/docker/dev/docker_update.sh @@ -1,2 +1,6 @@ #!/bin/sh +set -e + +export COMPOSE_DOCKER_CLI_BUILD=1 +export DOCKER_BUILDKIT=1 docker-compose up -d --no-deps --build diff --git a/docker/dev/test_deploy.sh b/docker/dev/test_deploy.sh index 1ae91f65..ce85f60c 100755 --- a/docker/dev/test_deploy.sh +++ b/docker/dev/test_deploy.sh @@ -1,4 +1,8 @@ #!/bin/sh +set -e + +export COMPOSE_DOCKER_CLI_BUILD=1 +export DOCKER_BUILDKIT=1 # Rebuilding dev docker docker-compose build |