1
0
mirror of https://github.com/kylemanna/docker-aosp synced 2025-06-07 16:06:17 +00:00

Merge pull request #28 from robbyoconnor/6.0-marshmallow

Various updates for the MM branch
This commit is contained in:
Kyle Manna 2017-07-15 21:05:54 -07:00 committed by GitHub
commit 224c2e0c03
5 changed files with 49 additions and 11 deletions

View File

@ -50,10 +50,6 @@ COPY ssh_config /root/.ssh/config
# considered to be ephemeral # considered to be ephemeral
VOLUME ["/tmp/ccache", "/aosp"] VOLUME ["/tmp/ccache", "/aosp"]
# Improve rebuild performance by enabling compiler cache
ENV USE_CCACHE 1
ENV CCACHE_DIR /tmp/ccache
# Work in the build directory, repo is expected to be init'd here # Work in the build directory, repo is expected to be init'd here
WORKDIR /aosp WORKDIR /aosp

View File

@ -46,10 +46,10 @@ For the terribly impatient.
5. In parallel you are expected to be drinking because I save you some time. 5. In parallel you are expected to be drinking because I save you some time.
mkdir kitkat ; cd kitkat mkdir marshmallow ; cd marshmallow
export AOSP_VOL=$PWD export AOSP_VOL=$PWD
curl -O https://raw.githubusercontent.com/kylemanna/docker-aosp/master/tests/build-kitkat.sh curl -O https://raw.githubusercontent.com/kylemanna/docker-aosp/master/tests/build-marshmallow.sh
bash ./build-kitkat.sh bash ./build-marshmallow.sh
How it Works How it Works
------------ ------------
@ -70,12 +70,41 @@ Docker container. For example to run `repo sync` in the Docker container:
The `aosp` wrapper doesn't work well with setting up environments, but with The `aosp` wrapper doesn't work well with setting up environments, but with
some bash magic, this can be side stepped with short little scripts. See some bash magic, this can be side stepped with short little scripts. See
`tests/build-kitkat.sh` for an example of a complete fetch and build of AOSP. `tests/build-marshmallow.sh` for an example of a complete fetch and build of AOSP.
[Docker Compose][]
------
A [Docker Compose][] file is provided in the root of this repository, you can tweak it as need be:
```yaml
version: "2"
services:
aosp:
image: kylemanna/aosp:6.0-marshmallow
volumes:
- /tmp/ccache:/ccache
- ~/aosp:/aosp
```
Example run: `docker-compose run --rm aosp repo sync -j4` -- your android build directory will be in `~/aosp`.
Issues
------
There are some known issues with using Docker Toolbox on macOS and current
virtualization technologies resulting in unusual user ID assignments and very
poor performing virtualization file sharing implementations with things like
VirtualBox. It's recommended to run this image completely in a virtual machine
with enough space to fit the entire build (80GB+) as opposed to mapping the
build to the local macOS file system via VirtualBox or similar.
Tested Tested
------ ------
* Android Kitkat `android-4.4.4_r2.0.1` * Android KitKat `android-4.4.4_r2.0.1`
* Android Lollipop `android-5.0.2_r1` * Android Lollipop `android-5.0.2_r1`
* Android Marshmallow `android-6.0.1_r72` * Android Marshmallow `android-6.0.1_r80`
* Android Nougat `android-7.0.0_r14`
[Docker Compose]: https://docs.docker.com/compose

9
docker-compose.yml Normal file
View File

@ -0,0 +1,9 @@
version: "2"
services:
aosp:
image: kylemanna/aosp:6.0-marshmallow
volumes:
- ~/aosp/ccache:/tmp/ccache
- ~/aosp:/aosp
- ~/.gitconfig:/root/.gitconfig

View File

@ -9,7 +9,7 @@
set -ex set -ex
if [ "$1" = "docker" ]; then if [ "$1" = "docker" ]; then
TEST_BRANCH=${TEST_BRANCH:-android-6.0.1_r72} TEST_BRANCH=${TEST_BRANCH:-android-6.0.1_r80}
TEST_URL=${TEST_URL:-https://android.googlesource.com/platform/manifest} TEST_URL=${TEST_URL:-https://android.googlesource.com/platform/manifest}
cpus=$(grep ^processor /proc/cpuinfo | wc -l) cpus=$(grep ^processor /proc/cpuinfo | wc -l)

View File

@ -17,6 +17,10 @@ set -e
if [ -z ${USER_ID+x} ]; then USER_ID=1000; fi if [ -z ${USER_ID+x} ]; then USER_ID=1000; fi
if [ -z ${GROUP_ID+x} ]; then GROUP_ID=1000; fi if [ -z ${GROUP_ID+x} ]; then GROUP_ID=1000; fi
# ccache
export CCACHE_DIR=/tmp/ccache
export USE_CCACHE=1
msg="docker_entrypoint: Creating user UID/GID [$USER_ID/$GROUP_ID]" && echo $msg msg="docker_entrypoint: Creating user UID/GID [$USER_ID/$GROUP_ID]" && echo $msg
groupadd -g $GROUP_ID -r aosp && \ groupadd -g $GROUP_ID -r aosp && \
useradd -u $USER_ID --create-home -r -g aosp aosp useradd -u $USER_ID --create-home -r -g aosp aosp