본문 바로가기
카테고리 없음

android dockerfile

by pishio 2025. 3. 10.
name: Build Cordova Android App

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Install required dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y wget unzip

      - name: Set up Java 17
        uses: actions/setup-java@v3
        with:
          distribution: 'temurin'
          java-version: '17'

      - name: Set up Node.js 20
        uses: actions/setup-node@v4
        with:
          node-version: '20.18.3'

      - name: Install Gradle 7.4.2
        run: |
          wget https://services.gradle.org/distributions/gradle-7.4.2-bin.zip -O gradle.zip
          sudo mkdir -p /opt/gradle
          sudo unzip -d /opt/gradle gradle.zip
          echo "export PATH=/opt/gradle/gradle-7.4.2/bin:$PATH" >> $GITHUB_ENV
          rm gradle.zip

      - name: Set up Android SDK
        run: |
          sudo mkdir -p /opt/android-sdk/cmdline-tools/latest
          cd /opt/android-sdk/cmdline-tools
          sudo wget https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -O cmdline-tools.zip
          sudo unzip cmdline-tools.zip -d latest
          sudo rm cmdline-tools.zip

          # 환경 변수 설정 및 즉시 적용
          echo "export ANDROID_HOME=/opt/android-sdk" >> $GITHUB_ENV
          echo "export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$PATH" >> $GITHUB_ENV
          export ANDROID_HOME=/opt/android-sdk
          export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$PATH

      - name: Install Android SDK packages
        run: |
          yes | sdkmanager --licenses
          sdkmanager "platform-tools" "platforms;android-35" "build-tools;35.0.0"

      - name: Install Cordova
        run: npm install -g cordova

      - name: Create Cordova project
        run: |
          cordova create myapp
          cd myapp
          cordova platform add android

      - name: Build Cordova Android app
        run: |
          cd myapp
          cordova build android




name: Build Cordova Android App

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Set up Java 17
        uses: actions/setup-java@v3
        with:
          distribution: 'temurin'
          java-version: '17'

      - name: Set up Node.js 20
        uses: actions/setup-node@v4
        with:
          node-version: '20.18.3'

      - name: Install Gradle 7.4.2
        run: |
          wget https://services.gradle.org/distributions/gradle-7.4.2-bin.zip -O gradle.zip
          sudo mkdir -p /opt/gradle
          sudo unzip -d /opt/gradle gradle.zip
          echo "export PATH=/opt/gradle/gradle-7.4.2/bin:$PATH" >> $GITHUB_ENV
          rm gradle.zip

      - name: Set up Android SDK
        run: |
          sudo mkdir -p /opt/android-sdk/cmdline-tools
          cd /opt/android-sdk/cmdline-tools
          sudo wget https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -O cmdline-tools.zip
          sudo unzip cmdline-tools.zip
          sudo mv cmdline-tools latest
          sudo rm cmdline-tools.zip
          echo "export ANDROID_HOME=/opt/android-sdk" >> $GITHUB_ENV
          echo "export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$PATH" >> $GITHUB_ENV

      - name: Install Android SDK packages
        run: |
          yes | sdkmanager --licenses
          sdkmanager "platform-tools" "platforms;android-35" "build-tools;35.0.0"

      - name: Install Cordova
        run: npm install -g cordova

      - name: Create Cordova project
        run: |
          cordova create myapp
          cd myapp
          cordova platform add android

      - name: Build Cordova Android app
        run: |
          cd myapp
          cordova build android






# Base image
FROM node:20.18.3-bullseye

# Set environment variables
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
ENV ANDROID_HOME=/opt/android-sdk
ENV PATH="${JAVA_HOME}/bin:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/emulator:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${PATH}"

# Install required dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
    openjdk-17-jdk \
    unzip \
    wget \
    gradle=7.4.2-1 \
    && rm -rf /var/lib/apt/lists/*

# Install Android SDK
RUN mkdir -p ${ANDROID_HOME}/cmdline-tools && \
    cd ${ANDROID_HOME}/cmdline-tools && \
    wget https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -O cmdline-tools.zip && \
    unzip cmdline-tools.zip && \
    mv cmdline-tools latest && \
    rm cmdline-tools.zip

# Accept Android SDK licenses
RUN yes | sdkmanager --licenses

# Install required Android SDK packages
RUN sdkmanager "platform-tools" "platforms;android-35" "build-tools;35.0.0"

# Install Cordova
RUN npm install -g cordova

# Create a Cordova project
WORKDIR /app
RUN cordova create myapp && cd myapp && cordova platform add android

# Set workdir
WORKDIR /app/myapp

# Build the Cordova Android app
CMD ["cordova", "build", "android"]


설명
1. 기반 이미지: Node.js 20.18.3 (Debian Bullseye)를 사용합니다.
2. 필수 패키지 설치: openjdk-17-jdk, unzip, wget, gradle 7.4.2를 설치합니다.
3. Android SDK 설치:
• cmdline-tools를 다운로드 및 설치합니다.
• sdkmanager를 사용하여 Android SDK 35의 필수 패키지(platform-tools, platforms;android-35, build-tools;35.0.0)를 설치합니다.
• sdkmanager --licenses로 라이선스를 자동으로 동의합니다.
4. Cordova 설치: npm install -g cordova를 통해 글로벌로 설치합니다.
5. Cordova 프로젝트 생성 및 플랫폼 추가: cordova create myapp 후 cordova platform add android 실행.
6. 앱 빌드: 컨테이너 실행 시 cordova build android 명령어를 실행합니다.

이 Dockerfile을 사용하면 Cordova Android 앱을 쉽게 빌드할 수 있습니다.
docker build -t cordova-android . 후
docker run --rm cordova-android 명령어로 실행하면 됩니다.


댓글