mirror of
https://github.com/dokku/dokku.git
synced 2025-12-16 12:07:45 +01:00
install dokku from built deb package and use docker image for integrations tests
This commit is contained in:
committed by
Jose Diaz-Gonzalez
parent
1f882d09bf
commit
d8ada6a6e9
@@ -3,9 +3,16 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
machine:
|
machine:
|
||||||
image: ubuntu-1604:201903-01
|
image: ubuntu-1604:201903-01
|
||||||
|
environment:
|
||||||
|
DOKKU_HOST: dokku.me
|
||||||
|
DOKKU_PORT: 3022
|
||||||
parallelism: 4
|
parallelism: 4
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
|
- run: |
|
||||||
|
make ci-dependencies
|
||||||
|
- run: |
|
||||||
|
./tests/ci/setup.sh
|
||||||
- run: |
|
- run: |
|
||||||
if [[ "$(lsb_release -rs)" == "14.04" ]]; then
|
if [[ "$(lsb_release -rs)" == "14.04" ]]; then
|
||||||
# dokku.me now resolves to 10.0.0.2. add 10.0.0.2/24 to eth0
|
# dokku.me now resolves to 10.0.0.2. add 10.0.0.2/24 to eth0
|
||||||
@@ -14,12 +21,6 @@ jobs:
|
|||||||
# dokku.me now resolves to 10.0.0.2. add 10.0.0.2/24 to ens4
|
# dokku.me now resolves to 10.0.0.2. add 10.0.0.2/24 to ens4
|
||||||
sudo ip a a 10.0.0.2/24 broadcast 10.0.0.255 dev ens4
|
sudo ip a a 10.0.0.2/24 broadcast 10.0.0.255 dev ens4
|
||||||
fi
|
fi
|
||||||
- run: |
|
|
||||||
make ci-dependencies
|
|
||||||
- run: |
|
|
||||||
./tests/ci/setup.sh
|
|
||||||
- run: |
|
|
||||||
echo 'export DOKKU_SKIP_CLEANUP=true' | sudo tee /home/dokku/.dokkurc/dokku_skip_cleanup
|
|
||||||
- run: |
|
- run: |
|
||||||
case $CIRCLE_NODE_INDEX in
|
case $CIRCLE_NODE_INDEX in
|
||||||
0) sudo -E make -e lint go-tests ci-go-coverage ;;
|
0) sudo -E make -e lint go-tests ci-go-coverage ;;
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ contrib
|
|||||||
build
|
build
|
||||||
docs
|
docs
|
||||||
tests
|
tests
|
||||||
|
!build/dokku.deb
|
||||||
!contrib/dokku-installer.py
|
!contrib/dokku-installer.py
|
||||||
!contrib/dokku-update
|
!contrib/dokku-update
|
||||||
!contrib/bash-completion
|
!contrib/bash-completion
|
||||||
|
|||||||
66
Dockerfile
66
Dockerfile
@@ -10,43 +10,43 @@ ARG DOKKU_SKIP_KEY_FILE=true
|
|||||||
ARG DOKKU_VHOST_ENABLE=false
|
ARG DOKKU_VHOST_ENABLE=false
|
||||||
ARG DOKKU_WEB_CONFIG=false
|
ARG DOKKU_WEB_CONFIG=false
|
||||||
|
|
||||||
RUN addgroup --gid $DOKKU_GID dokku && \
|
COPY ./build/dokku.deb /tmp/dokku.deb
|
||||||
adduser --uid $DOKKU_UID --gid $DOKKU_GID --disabled-password --gecos "" "dokku"
|
|
||||||
|
|
||||||
RUN echo "dokku dokku/hostname string $DOKKU_HOSTNAME" | debconf-set-selections && \
|
RUN addgroup --gid $DOKKU_GID dokku \
|
||||||
echo "dokku dokku/skip_key_file boolean $DOKKU_SKIP_KEY_FILE" | debconf-set-selections && \
|
&& adduser --uid $DOKKU_UID --gid $DOKKU_GID --disabled-password --gecos "" "dokku"
|
||||||
echo "dokku dokku/vhost_enable boolean $DOKKU_VHOST_ENABLE" | debconf-set-selections && \
|
|
||||||
echo "dokku dokku/web_config boolean $DOKKU_WEB_CONFIG" | debconf-set-selections && \
|
RUN echo "dokku dokku/hostname string $DOKKU_HOSTNAME" | debconf-set-selections \
|
||||||
curl -sSL https://packagecloud.io/dokku/dokku/gpgkey | apt-key add - && \
|
&& echo "dokku dokku/skip_key_file boolean $DOKKU_SKIP_KEY_FILE" | debconf-set-selections \
|
||||||
echo "deb https://packagecloud.io/dokku/dokku/ubuntu/ bionic main" | tee /etc/apt/sources.list.d/dokku.list && \
|
&& echo "dokku dokku/vhost_enable boolean $DOKKU_VHOST_ENABLE" | debconf-set-selections \
|
||||||
apt-get update && apt-get -y upgrade && apt-get --no-install-recommends -qq -y install \
|
&& echo "dokku dokku/web_config boolean $DOKKU_WEB_CONFIG" | debconf-set-selections \
|
||||||
dokku \
|
&& curl -sSL https://packagecloud.io/dokku/dokku/gpgkey | apt-key add - \
|
||||||
rsync && \
|
&& echo "deb https://packagecloud.io/dokku/dokku/ubuntu/ bionic main" | tee /etc/apt/sources.list.d/dokku.list \
|
||||||
apt-get purge -y syslog-ng-core && \
|
&& apt-get update -qq \
|
||||||
apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
&& apt-get install --no-install-recommends --only-upgrade -y -qq openssl openssh-server \
|
||||||
|
&& apt --no-install-recommends -qq -y install rsync /tmp/dokku.deb \
|
||||||
|
&& apt-get purge -y -q syslog-ng-core \
|
||||||
|
&& apt-get autoremove -y -q \
|
||||||
|
&& apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
|
|
||||||
COPY ./docker .
|
COPY ./docker .
|
||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
rsync -a /tmp/ / && \
|
rsync -a /tmp/ / \
|
||||||
rm -rf /tmp/* && \
|
&& rm -rf /tmp/* \
|
||||||
rm /etc/runit/runsvdir/default/sshd/down && \
|
&& rm /etc/runit/runsvdir/default/sshd/down \
|
||||||
chown -R dokku:dokku /home/dokku/ && \
|
&& chown -R dokku:dokku /home/dokku/ \
|
||||||
mkdir -p /skel/etc /skel/home /skel/var/lib/dokku /var/log/services && \
|
&& mkdir -p /skel/etc /skel/home /skel/var/lib/dokku /var/log/services \
|
||||||
mv /etc/ssh /skel/etc/ssh && \
|
&& mv /etc/ssh /skel/etc/ssh \
|
||||||
mv /home/dokku /skel/home/dokku && \
|
&& mv /home/dokku /skel/home/dokku \
|
||||||
mv /var/lib/dokku/config /skel/var/lib/dokku/config && \
|
&& mv /var/lib/dokku/config /skel/var/lib/dokku/config \
|
||||||
mv /var/lib/dokku/data /skel/var/lib/dokku/data && \
|
&& mv /var/lib/dokku/data /skel/var/lib/dokku/data \
|
||||||
ln -sf /mnt/dokku/etc/ssh /etc/ssh && \
|
&& ln -sf /mnt/dokku/etc/ssh /etc/ssh \
|
||||||
ln -sf /mnt/dokku/home/dokku /home/dokku && \
|
&& ln -sf /mnt/dokku/home/dokku /home/dokku \
|
||||||
ln -sf /mnt/dokku/var/lib/dokku/config /var/lib/dokku/config && \
|
&& ln -sf /mnt/dokku/var/lib/dokku/config /var/lib/dokku/config \
|
||||||
ln -sf /mnt/dokku/var/lib/dokku/data /var/lib/dokku/data && \
|
&& ln -sf /mnt/dokku/var/lib/dokku/data /var/lib/dokku/data \
|
||||||
mv /etc/my_init.d/00_regen_ssh_host_keys.sh \
|
&& mv /etc/my_init.d/00_regen_ssh_host_keys.sh /etc/my_init.d/15_regen_ssh_host_keys \
|
||||||
/etc/my_init.d/15_regen_ssh_host_keys && \
|
&& rm /etc/nginx/sites-enabled/default /usr/share/nginx/html/index.html /etc/my_init.d/10_syslog-ng.init \
|
||||||
rm /etc/nginx/sites-enabled/default && \
|
&& sed -i '/imklog/d' /etc/rsyslog.conf \
|
||||||
rm /usr/share/nginx/html/index.html && \
|
&& rm /var/log/btmp /var/log/wtmp /var/log/*log /var/log/apt/* /var/log/dokku/* /var/log/nginx/*
|
||||||
rm /etc/my_init.d/10_syslog-ng.init && \
|
|
||||||
sed -i '/imklog/d' /etc/rsyslog.conf && \
|
|
||||||
rm /var/log/btmp /var/log/wtmp /var/log/*log /var/log/apt/* /var/log/dokku/* /var/log/nginx/*
|
|
||||||
|
|||||||
9
contrib/dokku-docker-bin.sh
Executable file
9
contrib/dokku-docker-bin.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -eo pipefail
|
||||||
|
[[ $DOKKU_TRACE ]] && set -x && DOKKU_DOCKER_ENV="--env DOKKU_TRACE=on"
|
||||||
|
DOKKU_DOCKER_CONTAINER_NAME=${DOKKU_DOCKER_CONTAINER_NAME:=dokku}
|
||||||
|
|
||||||
|
# TODO: handle cases where we need a tty
|
||||||
|
DOCKER_CMD="docker exec $DOKKU_DOCKER_ENV -i $DOKKU_DOCKER_CONTAINER_NAME dokku $*"
|
||||||
|
|
||||||
|
exec "$DOCKER_CMD"
|
||||||
@@ -319,6 +319,13 @@ fn-require-bin() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn-build-docker-image() {
|
||||||
|
declare desc="Builds the dokku docker image and tags it with the given version"
|
||||||
|
declare VERSION="$1"
|
||||||
|
docker build -t "dokku/dokku:$VERSION" .
|
||||||
|
docker push "dokku/dokku:$VERSION"
|
||||||
|
}
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
declare RELEASE="$1"
|
declare RELEASE="$1"
|
||||||
local CURRENT_VERSION NEXT_VERSION IS_RELEASE
|
local CURRENT_VERSION NEXT_VERSION IS_RELEASE
|
||||||
@@ -360,14 +367,14 @@ main() {
|
|||||||
if [[ "$RELEASE" != "build" ]]; then
|
if [[ "$RELEASE" != "build" ]]; then
|
||||||
fn-publish-package "$IS_RELEASE" "deb" "build/dokku_${NEXT_VERSION}_amd64.deb" || log-fail "Error publishing deb package"
|
fn-publish-package "$IS_RELEASE" "deb" "build/dokku_${NEXT_VERSION}_amd64.deb" || log-fail "Error publishing deb package"
|
||||||
fn-publish-package "$IS_RELEASE" "rpm" "build/dokku-${NEXT_VERSION}-1.x86_64.rpm" || log-fail "Error publishing rpm package"
|
fn-publish-package "$IS_RELEASE" "rpm" "build/dokku-${NEXT_VERSION}-1.x86_64.rpm" || log-fail "Error publishing rpm package"
|
||||||
docker build -t "dokku/dokku:$NEXT_VERSION" .
|
fn-build-docker-image "$NEXT_VERSION" || log-fail "Error building docker image"
|
||||||
docker push "dokku/dokku:$NEXT_VERSION"
|
|
||||||
fn-repo-push-tags "$IS_RELEASE"
|
fn-repo-push-tags "$IS_RELEASE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$IS_RELEASE" != "true" ]]; then
|
if [[ "$IS_RELEASE" != "true" ]]; then
|
||||||
git reset -q HEAD plugins/*/plugin.toml
|
git reset -q HEAD plugins/*/plugin.toml
|
||||||
git checkout -- plugins/*/plugin.toml
|
git checkout -- plugins/*/plugin.toml
|
||||||
|
cp "build/dokku_${NEXT_VERSION}_amd64.deb" build/dokku.deb
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "build/dokku_${NEXT_VERSION}_amd64.deb" >build/deb-filename
|
echo "build/dokku_${NEXT_VERSION}_amd64.deb" >build/deb-filename
|
||||||
|
|||||||
1
debian/postinst
vendored
1
debian/postinst
vendored
@@ -40,6 +40,7 @@ case "$1" in
|
|||||||
|
|
||||||
egrep -i "^docker" /etc/group || groupadd docker
|
egrep -i "^docker" /etc/group || groupadd docker
|
||||||
usermod -aG docker dokku
|
usermod -aG docker dokku
|
||||||
|
mkdir -p ${DOKKU_ROOT}/.dokkurc
|
||||||
|
|
||||||
echo "Setting up storage directories"
|
echo "Setting up storage directories"
|
||||||
mkdir -p ${DOKKU_LIB_ROOT}/data ${DOKKU_LIB_ROOT}/data/storage
|
mkdir -p ${DOKKU_LIB_ROOT}/data ${DOKKU_LIB_ROOT}/data/storage
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ setup-user() {
|
|||||||
touch "$DOKKU_ROOT/.ssh/authorized_keys"
|
touch "$DOKKU_ROOT/.ssh/authorized_keys"
|
||||||
chown -R dokku:dokku "$DOKKU_ROOT/.ssh"
|
chown -R dokku:dokku "$DOKKU_ROOT/.ssh"
|
||||||
usermod -aG docker dokku
|
usermod -aG docker dokku
|
||||||
|
mkdir -p "$DOKKU_ROOT/.dokkurc"
|
||||||
}
|
}
|
||||||
|
|
||||||
setup-storage() {
|
setup-storage() {
|
||||||
|
|||||||
28
tests.mk
28
tests.mk
@@ -45,10 +45,9 @@ endif
|
|||||||
ci-dependencies: bats shellcheck shfmt xmlstarlet
|
ci-dependencies: bats shellcheck shfmt xmlstarlet
|
||||||
|
|
||||||
setup-deploy-tests:
|
setup-deploy-tests:
|
||||||
mkdir -p /home/dokku
|
|
||||||
ifdef ENABLE_DOKKU_TRACE
|
ifdef ENABLE_DOKKU_TRACE
|
||||||
echo "-----> Enabling tracing"
|
echo "-----> Enabling tracing"
|
||||||
echo "export DOKKU_TRACE=1" >> /home/dokku/dokkurc
|
docker exec -ti dokku bash -c 'echo "export DOKKU_TRACE=1" >> /home/dokku/dokkurc'
|
||||||
endif
|
endif
|
||||||
@echo "Setting dokku.me in /etc/hosts"
|
@echo "Setting dokku.me in /etc/hosts"
|
||||||
sudo /bin/bash -c "[[ `ping -c1 dokku.me >/dev/null 2>&1; echo $$?` -eq 0 ]] || echo \"127.0.0.1 dokku.me *.dokku.me www.test.app.dokku.me\" >> /etc/hosts"
|
sudo /bin/bash -c "[[ `ping -c1 dokku.me >/dev/null 2>&1; echo $$?` -eq 0 ]] || echo \"127.0.0.1 dokku.me *.dokku.me www.test.app.dokku.me\" >> /etc/hosts"
|
||||||
@@ -61,33 +60,20 @@ endif
|
|||||||
|
|
||||||
@echo "-----> Setting up ssh config..."
|
@echo "-----> Setting up ssh config..."
|
||||||
ifneq ($(shell ls /root/.ssh/config >/dev/null 2>&1 ; echo $$?),0)
|
ifneq ($(shell ls /root/.ssh/config >/dev/null 2>&1 ; echo $$?),0)
|
||||||
echo "Host dokku.me \\r\\n RequestTTY yes \\r\\n IdentityFile /root/.ssh/dokku_test_rsa" >> /root/.ssh/config
|
echo "Host dokku.me \\r\\n Port 3022 \\r\\n RequestTTY yes \\r\\n IdentityFile /root/.ssh/dokku_test_rsa" >> /root/.ssh/config
|
||||||
echo "Host 127.0.0.1 \\r\\n Port 22333 \\r\\n RequestTTY yes \\r\\n IdentityFile /root/.ssh/dokku_test_rsa" >> /root/.ssh/config
|
echo "Host 127.0.0.1 \\r\\n Port 22333 \\r\\n RequestTTY yes \\r\\n IdentityFile /root/.ssh/dokku_test_rsa" >> /root/.ssh/config
|
||||||
else ifeq ($(shell grep dokku.me /root/.ssh/config),)
|
else ifeq ($(shell grep dokku.me /root/.ssh/config),)
|
||||||
echo "Host dokku.me \\r\\n RequestTTY yes \\r\\n IdentityFile /root/.ssh/dokku_test_rsa" >> /root/.ssh/config
|
echo "Host dokku.me \\r\\n Port 3022 \\r\\n RequestTTY yes \\r\\n IdentityFile /root/.ssh/dokku_test_rsa" >> /root/.ssh/config
|
||||||
echo "Host 127.0.0.1 \\r\\n Port 22333 \\r\\n RequestTTY yes \\r\\n IdentityFile /root/.ssh/dokku_test_rsa" >> /root/.ssh/config
|
echo "Host 127.0.0.1 \\r\\n Port 22333 \\r\\n RequestTTY yes \\r\\n IdentityFile /root/.ssh/dokku_test_rsa" >> /root/.ssh/config
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(wildcard /etc/ssh/sshd_config),)
|
|
||||||
sed --in-place "s/^#Port 22$\/Port 22/g" /etc/ssh/sshd_config
|
|
||||||
ifeq ($(shell grep 22333 /etc/ssh/sshd_config),)
|
|
||||||
sed --in-place "s:^Port 22:Port 22 \\nPort 22333:g" /etc/ssh/sshd_config
|
|
||||||
endif
|
|
||||||
service ssh restart
|
|
||||||
endif
|
|
||||||
|
|
||||||
@echo "-----> Installing SSH public key..."
|
@echo "-----> Installing SSH public key..."
|
||||||
sudo sshcommand acl-remove dokku test
|
docker exec -ti dokku bash -c "sshcommand acl-remove dokku test"
|
||||||
cat /root/.ssh/dokku_test_rsa.pub | sudo sshcommand acl-add dokku test
|
docker exec -ti dokku bash -c "echo `cat /root/.ssh/dokku_test_rsa.pub` | sshcommand acl-add dokku test"
|
||||||
|
|
||||||
@echo "-----> Intitial SSH connection to populate known_hosts..."
|
@echo "-----> Intitial SSH connection to populate known_hosts..."
|
||||||
ssh -o StrictHostKeyChecking=no dokku@dokku.me help >/dev/null
|
sudo ssh -o StrictHostKeyChecking=no dokku@dokku.me help >/dev/null
|
||||||
ssh -o StrictHostKeyChecking=no dokku@127.0.0.1 help >/dev/null
|
sudo ssh -o StrictHostKeyChecking=no dokku@127.0.0.1 help >/dev/null
|
||||||
|
|
||||||
ifeq ($(shell grep dokku.me /home/dokku/VHOST 2>/dev/null),)
|
|
||||||
@echo "-----> Setting default VHOST to dokku.me..."
|
|
||||||
echo "dokku.me" > /home/dokku/VHOST
|
|
||||||
endif
|
|
||||||
|
|
||||||
lint-setup:
|
lint-setup:
|
||||||
@mkdir -p test-results/shellcheck tmp/shellcheck
|
@mkdir -p test-results/shellcheck tmp/shellcheck
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ set -eo pipefail
|
|||||||
readonly ROOT_DIR="$(cd "$(dirname "$(dirname "$(dirname "${BASH_SOURCE[0]}")")")" && pwd)"
|
readonly ROOT_DIR="$(cd "$(dirname "$(dirname "$(dirname "${BASH_SOURCE[0]}")")")" && pwd)"
|
||||||
|
|
||||||
install_dependencies() {
|
install_dependencies() {
|
||||||
|
echo "=====> install_dependencies on CIRCLE_NODE_INDEX: $CIRCLE_NODE_INDEX"
|
||||||
|
|
||||||
mkdir -p "$ROOT_DIR/build/"
|
mkdir -p "$ROOT_DIR/build/"
|
||||||
HEROKUISH_VERSION=$(grep HEROKUISH_VERSION "${ROOT_DIR}/deb.mk" | head -n1 | cut -d' ' -f3)
|
HEROKUISH_VERSION=$(grep HEROKUISH_VERSION "${ROOT_DIR}/deb.mk" | head -n1 | cut -d' ' -f3)
|
||||||
HEROKUISH_PACKAGE_NAME="herokuish_${HEROKUISH_VERSION}_amd64.deb"
|
HEROKUISH_PACKAGE_NAME="herokuish_${HEROKUISH_VERSION}_amd64.deb"
|
||||||
@@ -25,54 +27,59 @@ install_dependencies() {
|
|||||||
PROCFILE_UTIL_PACKAGE_NAME="procfile-util_${PROCFILE_VERSION}_amd64.deb"
|
PROCFILE_UTIL_PACKAGE_NAME="procfile-util_${PROCFILE_VERSION}_amd64.deb"
|
||||||
curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/trusty/procfile-util_${PROCFILE_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${PROCFILE_UTIL_PACKAGE_NAME}"
|
curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/trusty/procfile-util_${PROCFILE_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${PROCFILE_UTIL_PACKAGE_NAME}"
|
||||||
|
|
||||||
sudo add-apt-repository -y ppa:nginx/stable
|
sudo dpkg -i "${ROOT_DIR}/build/$HEROKUISH_PACKAGE_NAME" \
|
||||||
sudo apt-get update
|
"${ROOT_DIR}/build/$PLUGN_PACKAGE_NAME" \
|
||||||
sudo apt-get -qq -y install cgroupfs-mount nginx
|
"${ROOT_DIR}/build/$SSHCOMMAND_PACKAGE_NAME" \
|
||||||
sudo cp "${ROOT_DIR}/tests/dhparam.pem" /etc/nginx/dhparam.pem
|
"${ROOT_DIR}/build/$SIGIL_PACKAGE_NAME" \
|
||||||
|
"${ROOT_DIR}/build/$PROCFILE_UTIL_PACKAGE_NAME"
|
||||||
|
}
|
||||||
|
|
||||||
sudo dpkg -i "${ROOT_DIR}/build/$HEROKUISH_PACKAGE_NAME"
|
build_dokku() {
|
||||||
sudo dpkg -i "${ROOT_DIR}/build/$PLUGN_PACKAGE_NAME"
|
echo "=====> build_dokku on CIRCLE_NODE_INDEX: $CIRCLE_NODE_INDEX"
|
||||||
sudo dpkg -i "${ROOT_DIR}/build/$SSHCOMMAND_PACKAGE_NAME"
|
"${ROOT_DIR}/contrib/release-dokku" build
|
||||||
sudo dpkg -i "${ROOT_DIR}/build/$SIGIL_PACKAGE_NAME"
|
docker build -t dokku/dokku:test .
|
||||||
sudo dpkg -i "${ROOT_DIR}/build/$PROCFILE_UTIL_PACKAGE_NAME"
|
}
|
||||||
|
|
||||||
|
run_dokku_container() {
|
||||||
|
echo "=====> run_dokku_container on CIRCLE_NODE_INDEX: $CIRCLE_NODE_INDEX"
|
||||||
|
docker run -d \
|
||||||
|
--env DOKKU_HOSTNAME=dokku.me \
|
||||||
|
--name dokku \
|
||||||
|
--publish 3022:22 \
|
||||||
|
--publish 22333:22 \
|
||||||
|
--publish 80:80 \
|
||||||
|
--publish 443:443 \
|
||||||
|
--volume /var/lib/dokku:/mnt/dokku \
|
||||||
|
--volume /var/run/docker.sock:/var/run/docker.sock \
|
||||||
|
dokku/dokku:test
|
||||||
|
|
||||||
|
sleep 1 && docker logs dokku
|
||||||
}
|
}
|
||||||
|
|
||||||
install_dokku() {
|
install_dokku() {
|
||||||
|
echo "=====> install_dokku on CIRCLE_NODE_INDEX: $CIRCLE_NODE_INDEX"
|
||||||
|
|
||||||
if [[ "$FROM_SOURCE" == "true" ]]; then
|
if [[ "$FROM_SOURCE" == "true" ]]; then
|
||||||
sudo -E CI=true make -e install
|
sudo -E CI=true make -e install
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
"${ROOT_DIR}/contrib/release-dokku" build
|
build_dokku
|
||||||
|
run_dokku_container
|
||||||
|
|
||||||
echo "dokku dokku/hostname string dokku.me" | sudo debconf-set-selections
|
sudo mkdir -p /usr/local/bin
|
||||||
echo "dokku dokku/key_file string /root/.ssh/id_rsa.pub" | sudo debconf-set-selections
|
sudo cp -v contrib/dokku-docker-bin.sh /usr/local/bin/dokku
|
||||||
echo "dokku dokku/nginx_enable boolean true" | sudo debconf-set-selections
|
|
||||||
echo "dokku dokku/skip_key_file boolean true" | sudo debconf-set-selections
|
|
||||||
echo "dokku dokku/vhost_enable boolean true" | sudo debconf-set-selections
|
|
||||||
echo "dokku dokku/web_config boolean false" | sudo debconf-set-selections
|
|
||||||
sudo dpkg -i "$(cat "${ROOT_DIR}/build/deb-filename")"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# shellcheck disable=SC2120
|
# shellcheck disable=SC2120
|
||||||
setup_circle() {
|
setup_circle() {
|
||||||
echo "=====> setup_circle on CIRCLE_NODE_INDEX: $CIRCLE_NODE_INDEX"
|
echo "=====> setup_circle on CIRCLE_NODE_INDEX: $CIRCLE_NODE_INDEX"
|
||||||
sudo -E CI=true make -e sshcommand
|
|
||||||
# need to add the dokku user to the docker group
|
|
||||||
sudo usermod -G docker dokku
|
|
||||||
[[ "$1" == "buildstack" ]] && BUILD_STACK=true make -e stack
|
|
||||||
|
|
||||||
install_dependencies
|
install_dependencies
|
||||||
install_dokku
|
install_dokku
|
||||||
|
|
||||||
sudo -E make -e setup-deploy-tests
|
sudo -E make -e setup-deploy-tests
|
||||||
bash --version
|
|
||||||
docker version
|
|
||||||
lsb_release -a
|
lsb_release -a
|
||||||
# setup .dokkurc
|
|
||||||
sudo -E mkdir -p /home/dokku/.dokkurc
|
|
||||||
sudo -E chown dokku:ubuntu /home/dokku/.dokkurc
|
|
||||||
sudo -E chmod 775 /home/dokku/.dokkurc
|
|
||||||
# pull node:4 image for testing
|
# pull node:4 image for testing
|
||||||
sudo docker pull node:4
|
sudo docker pull node:4
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user