# 使用するベースイメージを指定 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"]