1
1
FROM eclipse-temurin:8-jammy
2
2
3
- # Add all migration tools to path
4
- RUN mkdir -p /assets/
5
-
6
3
# Download all migration dependencies
7
- RUN cd /assets && \
4
+ RUN mkdir -p /assets/ && cd /assets && \
8
5
curl -OL https://downloads.datastax.com/dsbulk/dsbulk.tar.gz && \
9
6
tar -xzf ./dsbulk.tar.gz && \
10
7
rm ./dsbulk.tar.gz && \
@@ -17,16 +14,35 @@ RUN cd /assets && \
17
14
rm ./spark-2.4.8-bin-hadoop2.7.tgz
18
15
19
16
RUN apt-get update && apt-get install -y openssh-server vim --no-install-recommends && \
20
- rm -rf /var/lib/apt/lists/*
21
- RUN service ssh start
17
+ rm -rf /var/lib/apt/lists/* && \
18
+ service ssh start
22
19
23
20
# Copy CDM jar & template files
24
- COPY ./target/cassandra-data-migrator-*.jar /assets/
21
+ ARG MAVEN_VERSION=3.8.6
22
+ ARG USER_HOME_DIR="/root"
23
+ ARG BASE_URL=https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries
24
+ ENV MAVEN_HOME /usr/share/maven
25
+ ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2"
26
+ COPY ./src /assets/src
27
+ COPY ./pom.xml /assets/pom.xml
25
28
COPY ./src/resources/sparkConf.properties /assets/
26
29
COPY ./src/resources/partitions.csv /assets/
27
30
COPY ./src/resources/primary_key_rows.csv /assets/
28
31
COPY ./src/resources/runCommands.txt /assets/
29
32
33
+ RUN mkdir -p /usr/share/maven /usr/share/maven/ref && \
34
+ curl -fsSL -o /tmp/apache-maven.tar.gz ${BASE_URL}/apache-maven-${MAVEN_VERSION}-bin.tar.gz && \
35
+ tar -xzf /tmp/apache-maven.tar.gz -C /usr/share/maven --strip-components=1 && \
36
+ rm -f /tmp/apache-maven.tar.gz && \
37
+ ln -s /usr/share/maven/bin/mvn /usr/bin/mvn && \
38
+ cd /assets && mvn -f ./pom.xml clean package && \
39
+ cp /assets/target/cassandra-data-migrator-*.jar /assets/ && \
40
+ rm -rf /assets/src && \
41
+ rm -rf /assets/target && \
42
+ rm -rf /assets/pom.xml && \
43
+ rm -rf "$MAVEN_HOME" && \
44
+ rm -rf "$USER_HOME_DIR/.m2"
45
+
30
46
# Add all migration tools to path
31
47
ENV PATH="${PATH}:/assets/dsbulk/bin/:/assets/cqlsh-astra/bin/:/assets/spark-2.4.8-bin-hadoop2.7/bin/"
32
48
0 commit comments