Browse Source

Mount the source volume rather than copy it

Now that the build script cleans up both before and after building, this
is a viable option and will significant reduce build times by promoting
container reuse (with `-k`).
Joshua M. Boniface 5 years ago
parent
commit
8b1a76a32e

+ 2 - 2
build.sh

@@ -16,7 +16,7 @@ usage() {
     echo -e "    * docker: Build using the build script in a standardized Docker container"
     echo -e "    * docker: Build using the build script in a standardized Docker container"
     echo -e "  * PLATFORM can be any platform shown by -l/--list-platforms and must be specified"
     echo -e "  * PLATFORM can be any platform shown by -l/--list-platforms and must be specified"
     echo -e "  * If -k/--keep-artifacts is specified, transient artifacts (e.g. Docker containers) will be"
     echo -e "  * If -k/--keep-artifacts is specified, transient artifacts (e.g. Docker containers) will be"
-    echo -e "    retained after the build is finished"
+    echo -e "    retained after the build is finished; the source directory will still be cleaned"
     echo -e "  * If -l/--list-platforms is specified, all other arguments are ignored; the script will print"
     echo -e "  * If -l/--list-platforms is specified, all other arguments are ignored; the script will print"
     echo -e "    the list of supported platforms and exit"
     echo -e "    the list of supported platforms and exit"
 }
 }
@@ -59,7 +59,7 @@ do_build_docker() {
 
 
     docker build . -t "jellyfin-builder.${PLATFORM}" -f deployment/Dockerfile.${PLATFORM}
     docker build . -t "jellyfin-builder.${PLATFORM}" -f deployment/Dockerfile.${PLATFORM}
     mkdir -p ${ARTIFACT_DIR}
     mkdir -p ${ARTIFACT_DIR}
-    docker run $docker_args -v "${ARTIFACT_DIR}:/dist" "jellyfin-builder.${PLATFORM}"
+    docker run $docker_args -v "${SOURCE_DIR}:/jellyfin" -v "${ARTIFACT_DIR}:/dist" "jellyfin-builder.${PLATFORM}"
 }
 }
 
 
 while [[ $# -gt 0 ]]; do
 while [[ $# -gt 0 ]]; do

+ 1 - 4
deployment/Dockerfile.debian.amd64

@@ -24,11 +24,8 @@ RUN wget https://download.visualstudio.microsoft.com/download/pr/d731f991-8e68-4
 # Link to build script
 # Link to build script
 RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.amd64 /build.sh
 RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.amd64 /build.sh
 
 
-# Create the source dir
-RUN mkdir -p ${SOURCE_DIR}
+VOLUME ${SOURCE_DIR}/
 
 
 VOLUME ${ARTIFACT_DIR}/
 VOLUME ${ARTIFACT_DIR}/
 
 
-COPY . ${SOURCE_DIR}/
-
 ENTRYPOINT ["/build.sh"]
 ENTRYPOINT ["/build.sh"]

+ 1 - 4
deployment/Dockerfile.debian.arm64

@@ -32,11 +32,8 @@ RUN dpkg --add-architecture arm64 \
 # Link to build script
 # Link to build script
 RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.arm64 /build.sh
 RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.arm64 /build.sh
 
 
-# Create the source dir
-RUN mkdir -p ${SOURCE_DIR}
+VOLUME ${SOURCE_DIR}/
 
 
 VOLUME ${ARTIFACT_DIR}/
 VOLUME ${ARTIFACT_DIR}/
 
 
-COPY . ${SOURCE_DIR}/
-
 ENTRYPOINT ["/build.sh"]
 ENTRYPOINT ["/build.sh"]

+ 1 - 4
deployment/Dockerfile.debian.armhf

@@ -32,11 +32,8 @@ RUN dpkg --add-architecture armhf \
 # Link to build script
 # Link to build script
 RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.armhf /build.sh
 RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.armhf /build.sh
 
 
-# Create the source dir
-RUN mkdir -p ${SOURCE_DIR}
+VOLUME ${SOURCE_DIR}/
 
 
 VOLUME ${ARTIFACT_DIR}/
 VOLUME ${ARTIFACT_DIR}/
 
 
-COPY . ${SOURCE_DIR}/
-
 ENTRYPOINT ["/build.sh"]
 ENTRYPOINT ["/build.sh"]

+ 1 - 4
deployment/Dockerfile.ubuntu.amd64

@@ -24,11 +24,8 @@ RUN wget https://download.visualstudio.microsoft.com/download/pr/d731f991-8e68-4
 # Link to build script
 # Link to build script
 RUN ln -sf ${SOURCE_DIR}/deployment/build.ubuntu.amd64 /build.sh
 RUN ln -sf ${SOURCE_DIR}/deployment/build.ubuntu.amd64 /build.sh
 
 
-# Create the source dir
-RUN mkdir -p ${SOURCE_DIR}
+VOLUME ${SOURCE_DIR}/
 
 
 VOLUME ${ARTIFACT_DIR}/
 VOLUME ${ARTIFACT_DIR}/
 
 
-COPY . ${SOURCE_DIR}/
-
 ENTRYPOINT ["/build.sh"]
 ENTRYPOINT ["/build.sh"]

+ 1 - 4
deployment/Dockerfile.ubuntu.arm64

@@ -43,11 +43,8 @@ RUN rm /etc/apt/sources.list \
 # Link to build script
 # Link to build script
 RUN ln -sf ${SOURCE_DIR}/deployment/build.ubuntu.arm64 /build.sh
 RUN ln -sf ${SOURCE_DIR}/deployment/build.ubuntu.arm64 /build.sh
 
 
-# Create the source dir
-RUN mkdir -p ${SOURCE_DIR}
+VOLUME ${SOURCE_DIR}/
 
 
 VOLUME ${ARTIFACT_DIR}/
 VOLUME ${ARTIFACT_DIR}/
 
 
-COPY . ${SOURCE_DIR}/
-
 ENTRYPOINT ["/build.sh"]
 ENTRYPOINT ["/build.sh"]

+ 1 - 4
deployment/Dockerfile.ubuntu.armhf

@@ -43,11 +43,8 @@ RUN rm /etc/apt/sources.list \
 # Link to build script
 # Link to build script
 RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.armhf /build.sh
 RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.armhf /build.sh
 
 
-# Create the source dir
-RUN mkdir -p ${SOURCE_DIR}
+VOLUME ${SOURCE_DIR}/
 
 
 VOLUME ${ARTIFACT_DIR}/
 VOLUME ${ARTIFACT_DIR}/
 
 
-COPY . ${SOURCE_DIR}/
-
 ENTRYPOINT ["/build.sh"]
 ENTRYPOINT ["/build.sh"]