Skip to content
This repository has been archived by the owner on Oct 10, 2022. It is now read-only.

Commit

Permalink
alpine base image version of cloud9
Browse files Browse the repository at this point in the history
  • Loading branch information
thelamer committed Jul 12, 2019
1 parent 58fbe99 commit 0cf7971
Show file tree
Hide file tree
Showing 8 changed files with 76 additions and 76 deletions.
24 changes: 12 additions & 12 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
FROM lsiobase/cloud9:files as builder
FROM lsiobase/ubuntu:bionic
FROM lsiobase/cloud9:files-alpine as builder
FROM lsiobase/alpine:3.9

# set version label
ARG BUILD_DATE
Expand All @@ -12,20 +12,20 @@ COPY --from=builder /buildout/ /

RUN \
echo "**** install base packages ****" && \
apt-get update && \
apt-get install -y --no-install-recommends \
apk add --no-cache \
c-ares \
curl \
git \
gnupg \
http-parser \
libevent \
libevent \
libstdc++ \
libuv \
sudo && \
echo "**** Cleanup and user perms ****" && \
usermod -aG sudo \
abc && \
apt-get autoclean && \
rm -rf \
/var/lib/apt/lists/* \
/var/tmp/* \
/tmp/*
echo "**** user perms ****" && \
usermod -aG wheel \
abc

# add local files
COPY root/ /
Expand Down
24 changes: 12 additions & 12 deletions Dockerfile.aarch64
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
FROM lsiobase/cloud9:arm64v8-files as builder
FROM lsiobase/ubuntu:arm64v8-bionic
FROM lsiobase/cloud9:arm64v8-files-alpine as builder
FROM lsiobase/alpine:arm64v8-3.9

# set version label
ARG BUILD_DATE
Expand All @@ -12,20 +12,20 @@ COPY --from=builder /buildout/ /

RUN \
echo "**** install base packages ****" && \
apt-get update && \
apt-get install -y --no-install-recommends \
apk add --no-cache \
c-ares \
curl \
git \
gnupg \
http-parser \
libevent \
libevent \
libstdc++ \
libuv \
sudo && \
echo "**** Cleanup and user perms ****" && \
usermod -aG sudo \
abc && \
apt-get autoclean && \
rm -rf \
/var/lib/apt/lists/* \
/var/tmp/* \
/tmp/*
echo "**** user perms ****" && \
usermod -aG wheel \
abc

# add local files
COPY root/ /
Expand Down
24 changes: 12 additions & 12 deletions Dockerfile.armhf
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
FROM lsiobase/cloud9:arm32v7-files as builder
FROM lsiobase/ubuntu:arm32v7-bionic
FROM lsiobase/cloud9:arm32v7-files-alpine as builder
FROM lsiobase/alpine:arm32v7-3.9

# set version label
ARG BUILD_DATE
Expand All @@ -12,20 +12,20 @@ COPY --from=builder /buildout/ /

RUN \
echo "**** install base packages ****" && \
apt-get update && \
apt-get install -y --no-install-recommends \
apk add --no-cache \
c-ares \
curl \
git \
gnupg \
http-parser \
libevent \
libevent \
libstdc++ \
libuv \
sudo && \
echo "**** Cleanup and user perms ****" && \
usermod -aG sudo \
abc && \
apt-get autoclean && \
rm -rf \
/var/lib/apt/lists/* \
/var/tmp/* \
/tmp/*
echo "**** user perms ****" && \
usermod -aG wheel \
abc

# add local files
COPY root/ /
Expand Down
64 changes: 32 additions & 32 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ pipeline {
DOCKERHUB_IMAGE = 'lsiobase/cloud9'
DEV_DOCKERHUB_IMAGE = 'lsiodev/cloud9-base'
PR_DOCKERHUB_IMAGE = 'lspipepr/cloud9-base'
DIST_IMAGE = 'ubuntu'
DIST_IMAGE = 'alpine'
MULTIARCH='true'
CI='true'
CI_WEB='true'
Expand All @@ -35,7 +35,7 @@ pipeline {
script{
env.EXIT_STATUS = ''
env.LS_RELEASE = sh(
script: '''docker run --rm alexeiled/skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':latest 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
script: '''docker run --rm alexeiled/skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':alpine 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
returnStdout: true).trim()
env.LS_RELEASE_NOTES = sh(
script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
Expand Down Expand Up @@ -118,10 +118,10 @@ pipeline {
}
}
}
// If this is a master build use live docker endpoints
// If this is a alpine build use live docker endpoints
stage("Set ENV live build"){
when {
branch "master"
branch "alpine"
environment name: 'CHANGE_ID', value: ''
}
steps {
Expand All @@ -139,7 +139,7 @@ pipeline {
// If this is a dev build use dev docker endpoints
stage("Set ENV dev build"){
when {
not {branch "master"}
not {branch "alpine"}
environment name: 'CHANGE_ID', value: ''
}
steps {
Expand Down Expand Up @@ -206,7 +206,7 @@ pipeline {
// Use helper containers to render templated files
stage('Update-Templates') {
when {
branch "master"
branch "alpine"
environment name: 'CHANGE_ID', value: ''
expression {
env.CONTAINER_NAME != null
Expand All @@ -217,15 +217,15 @@ pipeline {
set -e
TEMPDIR=$(mktemp -d)
docker pull linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=alpine -v ${TEMPDIR}:/ansible/jenkins linuxserver/jenkins-builder:latest
docker pull linuxserver/doc-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/readme linuxserver/doc-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=alpine -v ${TEMPDIR}:/ansible/readme linuxserver/doc-builder:latest
if [ "$(md5sum ${TEMPDIR}/${LS_REPO}/Jenkinsfile | awk '{ print $1 }')" != "$(md5sum Jenkinsfile | awk '{ print $1 }')" ] || \
[ "$(md5sum ${TEMPDIR}/${CONTAINER_NAME}/README.md | awk '{ print $1 }')" != "$(md5sum README.md | awk '{ print $1 }')" ] || \
[ "$(cat ${TEMPDIR}/${LS_REPO}/LICENSE | md5sum | cut -c1-8)" != "${LICENSE_TAG}" ]; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git checkout -f master
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git checkout -f alpine
cp ${TEMPDIR}/${CONTAINER_NAME}/README.md ${TEMPDIR}/repo/${LS_REPO}/
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/LICENSE ${TEMPDIR}/repo/${LS_REPO}/
Expand Down Expand Up @@ -257,7 +257,7 @@ pipeline {
// Exit the build if the Templated files were just updated
stage('Template-exit') {
when {
branch "master"
branch "alpine"
environment name: 'CHANGE_ID', value: ''
environment name: 'FILES_UPDATED', value: 'true'
expression {
Expand Down Expand Up @@ -356,7 +356,7 @@ pipeline {
// Take the image we just built and dump package versions for comparison
stage('Update-packages') {
when {
branch "master"
branch "alpine"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
Expand Down Expand Up @@ -384,7 +384,7 @@ pipeline {
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO}
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f master
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f alpine
cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/
cd ${TEMPDIR}/${LS_REPO}/
wait
Expand All @@ -408,7 +408,7 @@ pipeline {
// Exit the build if the package file was just updated
stage('PACKAGE-exit') {
when {
branch "master"
branch "alpine"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'true'
environment name: 'EXIT_STATUS', value: ''
Expand All @@ -422,7 +422,7 @@ pipeline {
// Exit the build if this is just a package check and there are no changes to push
stage('PACKAGECHECK-exit') {
when {
branch "master"
branch "alpine"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'false'
environment name: 'EXIT_STATUS', value: ''
Expand Down Expand Up @@ -507,12 +507,12 @@ pipeline {
sh '''#! /bin/bash
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
'''
sh "docker tag ${IMAGE}:${META_TAG} ${IMAGE}:latest"
sh "docker push ${IMAGE}:latest"
sh "docker tag ${IMAGE}:${META_TAG} ${IMAGE}:alpine"
sh "docker push ${IMAGE}:alpine"
sh "docker push ${IMAGE}:${META_TAG}"
sh '''docker rmi \
${IMAGE}:${META_TAG} \
${IMAGE}:latest || :'''
${IMAGE}:alpine || :'''

}
}
Expand Down Expand Up @@ -542,32 +542,32 @@ pipeline {
docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi'''
sh "docker tag ${IMAGE}:amd64-${META_TAG} ${IMAGE}:amd64-latest"
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm32v7-latest"
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ${IMAGE}:arm64v8-latest"
sh "docker tag ${IMAGE}:amd64-${META_TAG} ${IMAGE}:amd64-alpine"
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm32v7-alpine"
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ${IMAGE}:arm64v8-alpine"
sh "docker push ${IMAGE}:amd64-${META_TAG}"
sh "docker push ${IMAGE}:arm32v7-${META_TAG}"
sh "docker push ${IMAGE}:arm64v8-${META_TAG}"
sh "docker push ${IMAGE}:amd64-latest"
sh "docker push ${IMAGE}:arm32v7-latest"
sh "docker push ${IMAGE}:arm64v8-latest"
sh "docker manifest push --purge ${IMAGE}:latest || :"
sh "docker manifest create ${IMAGE}:latest ${IMAGE}:amd64-latest ${IMAGE}:arm32v7-latest ${IMAGE}:arm64v8-latest"
sh "docker manifest annotate ${IMAGE}:latest ${IMAGE}:arm32v7-latest --os linux --arch arm"
sh "docker manifest annotate ${IMAGE}:latest ${IMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8"
sh "docker push ${IMAGE}:amd64-alpine"
sh "docker push ${IMAGE}:arm32v7-alpine"
sh "docker push ${IMAGE}:arm64v8-alpine"
sh "docker manifest push --purge ${IMAGE}:alpine || :"
sh "docker manifest create ${IMAGE}:alpine ${IMAGE}:amd64-alpine ${IMAGE}:arm32v7-alpine ${IMAGE}:arm64v8-alpine"
sh "docker manifest annotate ${IMAGE}:alpine ${IMAGE}:arm32v7-alpine --os linux --arch arm"
sh "docker manifest annotate ${IMAGE}:alpine ${IMAGE}:arm64v8-alpine --os linux --arch arm64 --variant v8"
sh "docker manifest push --purge ${IMAGE}:${META_TAG} || :"
sh "docker manifest create ${IMAGE}:${META_TAG} ${IMAGE}:amd64-${META_TAG} ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm64v8-${META_TAG}"
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm32v7-${META_TAG} --os linux --arch arm"
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8"
sh "docker manifest push --purge ${IMAGE}:latest"
sh "docker manifest push --purge ${IMAGE}:alpine"
sh "docker manifest push --purge ${IMAGE}:${META_TAG}"
}
}
}
// If this is a public release tag it in the LS Github
stage('Github-Tag-Push-Release') {
when {
branch "master"
branch "alpine"
expression {
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
Expand All @@ -579,17 +579,17 @@ pipeline {
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
-d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
"object": "'${COMMIT_SHA}'",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to alpine",\
"type": "commit",\
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
echo "Pushing New release for Tag"
sh '''#! /bin/bash
echo "Updating base packages to ${PACKAGE_TAG}" > releasebody.json
echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
"target_commitish": "master",\
"target_commitish": "alpine",\
"name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**OS Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": false}' >> releasebody.json
printf '","draft": false,"prerelease": true}' >> releasebody.json
paste -d'\\0' start releasebody.json > releasebody.json.done
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
}
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

[![](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/Dockerfile-Link-green.png)](https://github.com/linuxserver/docker-baseimage-cloud9/blob/master/Dockerfile)

A custom base image built with [Ubuntu linux](https://www.ubuntu.com/) and [Cloud9](https://github.com/c9/core)..
A custom base image built with [Alpine linux](https://alpinelinux.org/) and [Cloud9](https://github.com/c9/core)..

The following line is only in this repo for loop testing:

Expand Down
8 changes: 4 additions & 4 deletions jenkins-vars.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
# jenkins variables
project_name: docker-baseimage-cloud9
external_type: os
release_type: stable
release_tag: latest
ls_branch: master
release_type: prerelease
release_tag: alpine
ls_branch: alpine
repo_vars:
- BUILD_VERSION_ARG = 'CLOUD9_VERSION'
- LS_USER = 'linuxserver'
Expand All @@ -14,7 +14,7 @@ repo_vars:
- DOCKERHUB_IMAGE = 'lsiobase/cloud9'
- DEV_DOCKERHUB_IMAGE = 'lsiodev/cloud9-base'
- PR_DOCKERHUB_IMAGE = 'lspipepr/cloud9-base'
- DIST_IMAGE = 'ubuntu'
- DIST_IMAGE = 'alpine'
- MULTIARCH='true'
- CI='true'
- CI_WEB='true'
Expand Down
2 changes: 1 addition & 1 deletion readme-vars.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ full_custom_readme: |
[![](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/Dockerfile-Link-green.png)](https://github.com/linuxserver/docker-baseimage-cloud9/blob/master/Dockerfile)
A custom base image built with [Ubuntu linux](https://www.ubuntu.com/) and [Cloud9](https://github.com/c9/core)..
A custom base image built with [Alpine linux](https://alpinelinux.org/) and [Cloud9](https://github.com/c9/core)..
The following line is only in this repo for loop testing:
Expand Down
4 changes: 2 additions & 2 deletions root/etc/cont-init.d/30-config
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
# check for lock file to only run git operations once
if [ ! -e /lock.file ]; then
# give abc a sudo shell for development
echo "auth sufficient pam_shells.so" > /etc/pam.d/chsh
chsh abc -s /bin/bash
sed -e 's/%sudo ALL=(ALL:ALL) ALL/%sudo ALL=(ALL:ALL) NOPASSWD: ALL/g' \
sed -e 's/# %wheel ALL=(ALL) NOPASSWD: ALL/%wheel ALL=(ALL) NOPASSWD: ALL/g' \
-i /etc/sudoers
sed -e 's/^wheel:\(.*\)/wheel:\1,abc/g' -i /etc/group
# create directory for project
mkdir -p /code
# make sure URL is set and folder is empty to clone code
Expand Down

0 comments on commit 0cf7971

Please sign in to comment.