diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml
index e81d455..469a55b 100755
--- a/.github/workflows/external_trigger.yml
+++ b/.github/workflows/external_trigger.yml
@@ -18,7 +18,7 @@ jobs:
fi
echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_MYSQL_WORKBENCH_MASTER\". ****"
echo "**** Retrieving external version ****"
- EXT_RELEASE=$(curl -sL https://dev.mysql.com/downloads/workbench/ |awk '/
MySQL Workbench/ {print $3;exit}')
+ EXT_RELEASE=$(curl -sL https://archlinux.org/packages/community/x86_64/mysql-workbench/json/ | jq -r '.pkgver')
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "**** Can't retrieve external version, exiting ****"
FAILURE_REASON="Can't retrieve external version for mysql-workbench branch master"
@@ -36,10 +36,15 @@ jobs:
token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fmysql-workbench%3Apull" \
| jq -r '.token')
- digest=$(curl -s \
+ multidigest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${tag}" \
+ | jq -r 'first(.manifests[].digest)')
+ digest=$(curl -s \
+ --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
+ --header "Authorization: Bearer ${token}" \
+ "https://ghcr.io/v2/${image}/manifests/${multidigest}" \
| jq -r '.config.digest')
image_info=$(curl -sL \
--header "Authorization: Bearer ${token}" \
diff --git a/Dockerfile b/Dockerfile
index 7802893..8ab551c 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM ghcr.io/linuxserver/baseimage-rdesktop-web:focal
+FROM ghcr.io/linuxserver/baseimage-rdesktop-web:arch
# set version label
ARG BUILD_DATE
@@ -7,46 +7,21 @@ ARG WORKBENCH_VERSION
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="thelamer"
+# title
+ENV TITLE=MySQLWorkbench
+
RUN \
- echo "**** install packages ****" && \
- apt-get update && \
- apt-get install -y \
- gnome-keyring \
- libatkmm-1.6-1v5 \
- libcairomm-1.0-1v5 \
- libglibmm-2.4-1v5 \
- libgtk2.0-0 \
- libgtkmm-3.0-1v5 \
- libmysqlclient21 \
- libopengl0 \
- libpangomm-1.4-1v5 \
- libpcrecpp0v5 \
- libproj15 \
- libpython3.8 \
- libsecret-1-0 \
- libsigc++-2.0-0v5 \
- libssh-4 \
- libvsqlitepp3v5 \
- libzip5 && \
- echo "**** install mysql workbench ****" && \
- if [ -z ${WORKBENCH_VERSION+x} ]; then \
- WORKBENCH_VERSION=$(curl -sL https://dev.mysql.com/downloads/workbench/ \
- |awk '/MySQL Workbench/ {print $3;exit}'); \
- fi && \
- curl -Lf -o \
- /tmp/workbench.deb \
- https://cdn.mysql.com/Downloads/MySQLGUITools/mysql-workbench-community_${WORKBENCH_VERSION}-1ubuntu20.04_amd64.deb && \
- dpkg -i /tmp/workbench.deb && \
+ echo "**** install runtime packages ****" && \
+ pacman -Sy --noconfirm --needed \
+ mysql-workbench && \
echo "**** cleanup ****" && \
- apt-get clean && \
rm -rf \
/tmp/* \
- /var/lib/apt/lists/* \
- /var/tmp/*
+ /var/cache/pacman/pkg/* \
+ /var/lib/pacman/sync/*
# add local files
COPY /root /
# ports and volumes
EXPOSE 3000
-VOLUME /config
diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64
new file mode 100644
index 0000000..58fdd94
--- /dev/null
+++ b/Dockerfile.aarch64
@@ -0,0 +1,27 @@
+FROM ghcr.io/linuxserver/baseimage-rdesktop-web:arm64v8-arch
+
+# set version label
+ARG BUILD_DATE
+ARG VERSION
+ARG WORKBENCH_VERSION
+LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
+LABEL maintainer="thelamer"
+
+# title
+ENV TITLE=MySQLWorkbench
+
+RUN \
+ echo "**** install runtime packages ****" && \
+ pacman -Sy --noconfirm --needed \
+ mysql-workbench && \
+ echo "**** cleanup ****" && \
+ rm -rf \
+ /tmp/* \
+ /var/cache/pacman/pkg/* \
+ /var/lib/pacman/sync/*
+
+# add local files
+COPY /root /
+
+# ports and volumes
+EXPOSE 3000
diff --git a/Dockerfile.armhf b/Dockerfile.armhf
new file mode 100644
index 0000000..4492153
--- /dev/null
+++ b/Dockerfile.armhf
@@ -0,0 +1,27 @@
+FROM ghcr.io/linuxserver/baseimage-rdesktop-web:arm32v7-arch
+
+# set version label
+ARG BUILD_DATE
+ARG VERSION
+ARG WORKBENCH_VERSION
+LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
+LABEL maintainer="thelamer"
+
+# title
+ENV TITLE=MySQLWorkbench
+
+RUN \
+ echo "**** install runtime packages ****" && \
+ pacman -Sy --noconfirm --needed \
+ mysql-workbench && \
+ echo "**** cleanup ****" && \
+ rm -rf \
+ /tmp/* \
+ /var/cache/pacman/pkg/* \
+ /var/lib/pacman/sync/*
+
+# add local files
+COPY /root /
+
+# ports and volumes
+EXPOSE 3000
diff --git a/Jenkinsfile b/Jenkinsfile
index 9d21fb2..05856dd 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -24,8 +24,8 @@ pipeline {
DOCKERHUB_IMAGE = 'linuxserver/mysql-workbench'
DEV_DOCKERHUB_IMAGE = 'lsiodev/mysql-workbench'
PR_DOCKERHUB_IMAGE = 'lspipepr/mysql-workbench'
- DIST_IMAGE = 'ubuntu'
- MULTIARCH = 'false'
+ DIST_IMAGE = 'arch'
+ MULTIARCH = 'true'
CI = 'true'
CI_WEB = 'true'
CI_PORT = '3000'
@@ -104,7 +104,7 @@ pipeline {
steps{
script{
env.EXT_RELEASE = sh(
- script: ''' curl -sL https://dev.mysql.com/downloads/workbench/ |awk '/MySQL Workbench/ {print $3;exit}' ''',
+ script: ''' curl -sL https://archlinux.org/packages/community/x86_64/mysql-workbench/json/ | jq -r '.pkgver' ''',
returnStdout: true).trim()
env.RELEASE_LINK = 'custom_command'
}
diff --git a/README.md b/README.md
index 05a2f9b..33789c7 100644
--- a/README.md
+++ b/README.md
@@ -46,7 +46,7 @@ Find us at:
## Supported Architectures
-We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
+Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
Simply pulling `lscr.io/linuxserver/mysql-workbench` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
@@ -55,6 +55,8 @@ The architectures supported by this image are:
| Architecture | Tag |
| :----: | --- |
| x86-64 | latest |
+| arm64 | arm64v8-latest |
+| armhf | arm32v7-latest |
## Application Setup
@@ -87,8 +89,6 @@ services:
- /path/to/config:/config
ports:
- 3000:3000
- cap_add:
- - IPC_LOCK
restart: unless-stopped
```
@@ -102,7 +102,6 @@ docker run -d \
-e TZ=Europe/London \
-p 3000:3000 \
-v /path/to/config:/config \
- --cap-add="IPC_LOCK" \
--restart unless-stopped \
lscr.io/linuxserver/mysql-workbench
```
@@ -118,7 +117,6 @@ Container images are configured using parameters passed at runtime (such as thos
| `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London. |
| `-v /config` | Users home directory in the container, stores program settings. |
-| `--cap-add=` | Required for keyring functionality |
## Environment variables from files (Docker secrets)
@@ -229,6 +227,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
+* **15.02.22:** - Rebase to Arch.
* **20.04.21:** - Rebase on focal.
* **18.01.21:** - Update libpython dependency.
* **26.03.20:** - Initial release.
diff --git a/jenkins-vars.yml b/jenkins-vars.yml
index 487388a..775b278 100644
--- a/jenkins-vars.yml
+++ b/jenkins-vars.yml
@@ -3,7 +3,7 @@
# jenkins variables
project_name: docker-mysql-workbench
external_type: na
-custom_version_command: "curl -sL https://dev.mysql.com/downloads/workbench/ |awk '/MySQL Workbench/ {print $3;exit}'"
+custom_version_command: curl -sL https://archlinux.org/packages/community/x86_64/mysql-workbench/json/ | jq -r '.pkgver'
release_type: stable
release_tag: latest
ls_branch: master
@@ -15,8 +15,8 @@ repo_vars:
- DOCKERHUB_IMAGE = 'linuxserver/mysql-workbench'
- DEV_DOCKERHUB_IMAGE = 'lsiodev/mysql-workbench'
- PR_DOCKERHUB_IMAGE = 'lspipepr/mysql-workbench'
- - DIST_IMAGE = 'ubuntu'
- - MULTIARCH = 'false'
+ - DIST_IMAGE = 'arch'
+ - MULTIARCH = 'true'
- CI = 'true'
- CI_WEB = 'true'
- CI_PORT = '3000'
diff --git a/readme-vars.yml b/readme-vars.yml
index b478528..2fcc367 100644
--- a/readme-vars.yml
+++ b/readme-vars.yml
@@ -11,6 +11,8 @@ project_blurb_optional_extras_enabled: false
# supported architectures
available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "latest"}
+ - { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
+ - { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
# development version
development_versions: false
@@ -27,8 +29,6 @@ param_volumes:
param_usage_include_ports: true
param_ports:
- { external_port: "3000", internal_port: "3000", port_desc: "Mysql Workbench desktop gui." }
-custom_params:
- - { name: "cap-add", name_compose: "cap_add", value: ["IPC_LOCK"], desc: "Required for keyring functionality", array: "true" }
# application setup block
app_setup_block_enabled: true
app_setup_block: |
@@ -42,6 +42,7 @@ app_setup_block: |
# changelog
changelogs:
+ - { date: "15.02.22:", desc: "Rebase to Arch." }
- { date: "20.04.21:", desc: "Rebase on focal." }
- { date: "18.01.21:", desc: "Update libpython dependency." }
- { date: "26.03.20:", desc: "Initial release." }
diff --git a/root/defaults/menu.xml b/root/defaults/menu.xml
new file mode 100644
index 0000000..1405938
--- /dev/null
+++ b/root/defaults/menu.xml
@@ -0,0 +1,8 @@
+
+
+
+
diff --git a/root/etc/cont-init.d/56-openboxcopy b/root/etc/cont-init.d/56-openboxcopy
new file mode 100644
index 0000000..f22df65
--- /dev/null
+++ b/root/etc/cont-init.d/56-openboxcopy
@@ -0,0 +1,7 @@
+#!/usr/bin/with-contenv bash
+
+# default file copies first run
+[[ ! -f /config/.config/openbox/menu.xml ]] && \
+ mkdir -p /config/.config/openbox && \
+ cp /defaults/menu.xml /config/.config/openbox/menu.xml && \
+ chown -R abc:abc /config/.config