.. | ||
rpm-gpg-keys | ||
yum.repos.d | ||
dl_other_from_centos_repo.sh | ||
dl_rpms.sh | ||
dl_tarball.sh | ||
Dockerfile | ||
download_mirror.sh | ||
mirror-check.sh | ||
mvn-artifacts.lst | ||
other_downloads.lst | ||
README.rst | ||
rpms_3rdparties.lst | ||
rpms_centos3rdparties.lst | ||
rpms_centos.lst | ||
show_imported_rpm_gpg_keys.sh | ||
starlingx_add_pkgs.sh | ||
tarball-dl.lst |
Create mirror for StarlingX
Step 0 - Build the container
Build the docker image on your Linux host (with Docker supported). NOTE: if necessary you might have to set http/https proxy in your Dockerfile before building the docker image below.
$ docker build -t <your_docker_image_name>:<your_image_version> -f Dockerfile .
Step 1 - Run the container
The container shall be run from the same directory where the other scripts are stored.
$ docker run -it -v $(pwd):/localdisk <your_docker_image_name>:<your_image_version>
The container can also be run the following way, so the
download_mirror.sh
runs automatically without having to
enter the container and the step 2can be simplified.
$ docker run -it -v $(pwd):/localdisk <your_docker_image_name>:<your_image_version> download_mirror.sh
As /localdisk
is defined as the workdir of the
container, the same folder name should be used to define the volume. The
container will start to run and populate a logs
and
output
folders in this directory. The container shall be
run from the same directory where the other scripts are stored.
step 2 - Run the
download_mirror.sh
script
Once inside the container run the downloader script
$ ./download_mirror.sh
NOTE: in case there are some downloading failures due to network instability (or timeout), you should download them manually, to assure you get all RPMs listed in "rpms_from_3rd_parties.lst" and "rpms_from_centos_repo.lst".
step 3 - Copy the files to the mirror
After all downloading complete, copy the download files to mirror.
$ find ./output -name "*.i686.rpm" | xargs rm -f $ chown 751:751 -R ./output $ cp -rf output/stx-r1/ <your_mirror_folder>/
In this case <your_mirror_folder>
can be whatever
folder you want to use as mirror.
step 4 - Tweaks in the StarlingX build system.
NOTE: step below is not needed if you've synced the latest codebase.
Go into StarlingX build system (another container which hosts cgcs build system), and follow up below steps:
Debugging issues
The download_mirror.sh
script will create log files in
the form of centos_rpms_*.txt
. After the download is
complete, it's recommended to check the content of these files to see if
everything was downloaded correctly.
A quick look into these files could be:
$ cd output/ $ cat missing
In this case, there shoudn't be any package in the "missing" files.