webTube / Dockerfile
soiz1's picture
Update Dockerfile
2d21e5c verified
# 使用するベースイメージを指定
FROM openjdk:11-jdk-slim
# 必要なツールをインストール
RUN apt-get update && apt-get install -y \
wget \
unzip \
git \
&& rm -rf /var/lib/apt/lists/*
# Android SDKのインストール
ENV ANDROID_SDK_ROOT /sdk
RUN mkdir -p /sdk && \
wget -q "https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip" -O cmdline-tools.zip && \
unzip cmdline-tools.zip -d /sdk/cmdline-tools && \
rm cmdline-tools.zip && \
yes | /sdk/cmdline-tools/cmdline-tools/bin/sdkmanager --licenses && \
/sdk/cmdline-tools/cmdline-tools/bin/sdkmanager \
"platform-tools" \
"platforms;android-33" \
"build-tools;33.0.2"
# Gradleの設定
ENV GRADLE_VERSION 7.6
RUN wget -q https://services.gradle.org/distributions/gradle-$GRADLE_VERSION-all.zip -P /tmp && \
unzip /tmp/gradle-$GRADLE_VERSION-all.zip -d /opt && \
rm /tmp/gradle-$GRADLE_VERSION-all.zip && \
ln -s /opt/gradle-$GRADLE_VERSION /opt/gradle && \
ln -s /opt/gradle/bin/gradle /usr/bin/gradle
# Gradleのキャッシュディレクトリをプロジェクトディレクトリ内に変更
ENV GRADLE_USER_HOME=/app/webTube/.gradle
# 必要なディレクトリを作成し、パーミッションを設定
RUN mkdir -p /app/webTube/.gradle/wrapper/dists/gradle-7.6-bin && \
chmod -R 777 /app/webTube/.gradle
RUN chmod -R 777 /app/webTube/
RUN mkdir -p /app/webTube/.gradle/wrapper/dists/gradle-7.6-bin/9l9tetv7ltxvx3i8an4pb86ye/ && \
chmod -R 777 /app/webTube/.gradle/wrapper/dists/gradle-7.6-bin/9l9tetv7ltxvx3i8an4pb86ye/
# 必要なロックファイルを作成
RUN touch /app/webTube/.gradle/wrapper/dists/gradle-7.6-bin/gradle-7.6-bin.zip.lck && \
chmod 777 /app/webTube/.gradle/wrapper/dists/gradle-7.6-bin/gradle-7.6-bin.zip.lck
# プロジェクトのクローンとセットアップ
RUN rm -rf /app/webTube && git clone https://github.com/martykan/webTube.git /app/webTube
WORKDIR /app/webTube
# Gradle Wrapperの権限を設定
RUN chmod +x /app/webTube/gradlew
# Gradleの互換性設定
RUN sed -i 's/gradle-4.4.1/gradle-7.6/g' gradle/wrapper/gradle-wrapper.properties
# local.properties の設定
RUN echo "sdk.dir=/sdk" > /app/webTube/local.properties
# Gradle Wrapperの設定
RUN ./gradlew wrapper --gradle-version 7.6 --no-daemon
# キャッシュを削除して再ビルドを試行
RUN rm -rf /app/webTube/.gradle && ./gradlew build --info --warning-mode all --no-daemon || true
# ポートの設定
EXPOSE 8080
# コンテナ起動時のコマンド
CMD ["./gradlew", "run"]