From fcf720936a4463e22410bd5b1a6a41a33cdfee9b Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Fri, 16 Aug 2024 13:24:26 -0500 Subject: [PATCH 01/14] Remove MariaDB dependencies --- docker-compose.development.yml | 4 ++-- docker-compose.production.yml | 4 ++-- docker-compose.yml | 26 +++++++++++++------------- state/docker-compose.yml | 4 ++-- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/docker-compose.development.yml b/docker-compose.development.yml index d82f2bb..a3d6d4b 100644 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -12,8 +12,8 @@ services: build: context: ./. target: dev-runner - depends_on: - - mariadb + # depends_on: + # - mariadb networks: - database - nginx diff --git a/docker-compose.production.yml b/docker-compose.production.yml index 2513a50..62e43c0 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -13,8 +13,8 @@ services: build: context: ./. target: runner - depends_on: - - mariadb + # depends_on: + # - mariadb networks: - database - nginx diff --git a/docker-compose.yml b/docker-compose.yml index 65b1bc3..0b017e2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,18 +1,18 @@ version: '3.9' services: - mariadb: - image: mariadb:11.4 - networks: - - database - restart: unless-stopped - ports: - - '127.0.0.1:3306:3306' - environment: - - MYSQL_ROOT_PASSWORD=root - volumes: - - './config/mariadb.cnf:/etc/mysql/conf.d/mariadb.cnf' - - 'database:/var/lib/mysql' - - './seed-database/:/docker-entrypoint-initdb.d/:ro' + # mariadb: + # image: mariadb:11.4 + # networks: + # - database + # restart: unless-stopped + # ports: + # - '127.0.0.1:3306:3306' + # environment: + # - MYSQL_ROOT_PASSWORD=root + # volumes: + # - './config/mariadb.cnf:/etc/mysql/conf.d/mariadb.cnf' + # - 'database:/var/lib/mysql' + # - './seed-database/:/docker-entrypoint-initdb.d/:ro' redis: image: redis diff --git a/state/docker-compose.yml b/state/docker-compose.yml index b5837dd..8c78348 100644 --- a/state/docker-compose.yml +++ b/state/docker-compose.yml @@ -1,7 +1,7 @@ -# docker-compose doesn't like empty files, so this redundant mariadb extend +# docker-compose doesn't like empty files, so this redundant nginx extend # is provided: version: '3.9' services: - mariadb: + nginx: restart: unless-stopped From c09f236898dc2523275ec3f6b924de8faa6e8c16 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Fri, 16 Aug 2024 13:32:37 -0500 Subject: [PATCH 02/14] Switch domains --- README.md | 2 +- app/lib/nginx.ts | 4 ++-- config/panel.conf | 4 ++-- docker-compose.development.yml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 3fb6354..c6d24ee 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ openssl req \ ``` Note, production deployment expects `privkey.pem` and `fullchain.pem` to be in -the `/etc/letsencrypt/live/test.specifysystems.org-0001/privkey.pem` directory +the `/etc/letsencrypt/live/test.specifysoftware.org-0001/privkey.pem` directory ## Create a GitHub OAuth App diff --git a/app/lib/nginx.ts b/app/lib/nginx.ts index a36c2eb..b706630 100644 --- a/app/lib/nginx.ts +++ b/app/lib/nginx.ts @@ -13,8 +13,8 @@ server { server_name ${deployment.hostname}.${host}; root /usr/share/nginx; - ssl_certificate /etc/letsencrypt/live/test.specifysystems.org/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/test.specifysystems.org/privkey.pem; + ssl_certificate /etc/letsencrypt/live/test.specifysoftware.org/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/test.specifysoftware.org/privkey.pem; ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; ssl_prefer_server_ciphers on; diff --git a/config/panel.conf b/config/panel.conf index 2c014e4..6f24557 100644 --- a/config/panel.conf +++ b/config/panel.conf @@ -10,8 +10,8 @@ server { server { listen 443 ssl default_server; - ssl_certificate /etc/letsencrypt/live/test.specifysystems.org-0001/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/test.specifysystems.org-0001/privkey.pem; + ssl_certificate /etc/letsencrypt/live/test.specifysoftware.org-0001/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/test.specifysoftware.org-0001/privkey.pem; ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; ssl_prefer_server_ciphers on; diff --git a/docker-compose.development.yml b/docker-compose.development.yml index a3d6d4b..3f8b065 100644 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -6,7 +6,7 @@ services: depends_on: - panel volumes: - - './config:/etc/letsencrypt/live/test.specifysystems.org-0001:ro' + - './config:/etc/letsencrypt/live/test.specifysoftware.org-0001:ro' panel: build: From 917a3fdce87bf284f4a0029b13f74c0a48216d73 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Fri, 16 Aug 2024 13:52:23 -0500 Subject: [PATCH 03/14] Fix SSL path --- config/panel.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/panel.conf b/config/panel.conf index 6f24557..f0e62ae 100644 --- a/config/panel.conf +++ b/config/panel.conf @@ -10,8 +10,8 @@ server { server { listen 443 ssl default_server; - ssl_certificate /etc/letsencrypt/live/test.specifysoftware.org-0001/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/test.specifysoftware.org-0001/privkey.pem; + ssl_certificate /etc/letsencrypt/test.specifysoftware.org-0001/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/test.specifysoftware.org-0001/privkey.pem; ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; ssl_prefer_server_ciphers on; From 0979c76d078d0de0d80882fc6f55cff659e63665 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Fri, 16 Aug 2024 13:55:27 -0500 Subject: [PATCH 04/14] Update panel.conf --- config/panel.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/panel.conf b/config/panel.conf index f0e62ae..c659a58 100644 --- a/config/panel.conf +++ b/config/panel.conf @@ -10,8 +10,8 @@ server { server { listen 443 ssl default_server; - ssl_certificate /etc/letsencrypt/test.specifysoftware.org-0001/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/test.specifysoftware.org-0001/privkey.pem; + ssl_certificate /etc/letsencrypt/live/test.specifysoftware.org/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/test.specifysoftware.org/privkey.pem; ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; ssl_prefer_server_ciphers on; From e24f26e4aebaf01abb37e08cfe7d7b1fa979afb8 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Fri, 16 Aug 2024 23:00:06 -0500 Subject: [PATCH 05/14] Use final domain --- README.md | 45 +++++++++++++++++++++++++++++++++- app/lib/nginx.ts | 4 +-- config/panel.conf | 4 +-- docker-compose.development.yml | 2 +- 4 files changed, 49 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index c6d24ee..6ea915f 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ openssl req \ ``` Note, production deployment expects `privkey.pem` and `fullchain.pem` to be in -the `/etc/letsencrypt/live/test.specifysoftware.org-0001/privkey.pem` directory +the `/etc/letsencrypt/live/test.specifysystems.org-0001/privkey.pem` directory ## Create a GitHub OAuth App @@ -252,6 +252,49 @@ systemctl enable specify7-test-panel-update.path systemctl start specify7-test-panel-update.path ``` +### Emulating x86_64 for Specify 6 images + +Using an emulation layer like `binfmt_misc` or `docker-run-arm` can help you run `x86_64` images on an `arm64` platform. + +Here's an example of how you can use `binfmt_misc` to run `x86_64` images on an `arm64` platform: + +1. Install `binfmt_misc` on your system: +``` +sudo apt-get update +sudo apt-get install binfmt-support qemu-user-static +``` +2. Configure `binfmt_misc` to enable emulation: +``` +sudo update-binfmts --enable +``` +3. Create a `binfmt_misc` configuration file to enable `x86_64` emulation: +``` +sudo tee /proc/sys/fs/binfmt_misc/register < Date: Sat, 17 Aug 2024 08:22:19 -0500 Subject: [PATCH 06/14] Update domain --- app/lib/nginx.ts | 4 ++-- config/panel.conf | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/lib/nginx.ts b/app/lib/nginx.ts index a36c2eb..5fa020a 100644 --- a/app/lib/nginx.ts +++ b/app/lib/nginx.ts @@ -13,8 +13,8 @@ server { server_name ${deployment.hostname}.${host}; root /usr/share/nginx; - ssl_certificate /etc/letsencrypt/live/test.specifysystems.org/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/test.specifysystems.org/privkey.pem; + ssl_certificate /etc/letsencrypt/live/test.specifysystems.org-0001/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/test.specifysystems.org-0001/privkey.pem; ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; ssl_prefer_server_ciphers on; diff --git a/config/panel.conf b/config/panel.conf index 6fe7264..2c014e4 100644 --- a/config/panel.conf +++ b/config/panel.conf @@ -10,8 +10,8 @@ server { server { listen 443 ssl default_server; - ssl_certificate /etc/letsencrypt/live/test.specifysystems.org/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/test.specifysystems.org/privkey.pem; + ssl_certificate /etc/letsencrypt/live/test.specifysystems.org-0001/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/test.specifysystems.org-0001/privkey.pem; ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; ssl_prefer_server_ciphers on; From 6cb28767c08f1dc4a0bfa670c4a0236083270e94 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Sun, 18 Aug 2024 11:23:13 -0500 Subject: [PATCH 07/14] Change instructions for ubuntu user --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6ea915f..d77f910 100644 --- a/README.md +++ b/README.md @@ -227,7 +227,7 @@ Description=Run docker-compose up for test panel. [Service] Type=oneshot -WorkingDirectory=/home/specify/specify7-test-panel +WorkingDirectory=/home/ubuntu/specify7-test-panel ExecStart=docker compose -f docker-compose.yml -f docker-compose.production.yml -f /var/lib/docker/volumes/specify7-test-panel_state/_data/docker-compose.yml up --remove-orphans -d ``` From 196bacbf5e347a70b23cca4b40ddcb4267777671 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Sun, 18 Aug 2024 13:16:29 -0500 Subject: [PATCH 08/14] Improve instructions --- README.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d77f910..b352d98 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ To run the containers, generate `fullchain.pem` and `privkey.pem` (certificate and the private key) using Let's Encrypt and put these files into the `./config/` directory. +### Development While in development, you can generate self-signed certificates: ```zsh @@ -21,10 +22,35 @@ openssl req \ -keyout ./config/privkey.pem \ -out ./config/fullchain.pem ``` - -Note, production deployment expects `privkey.pem` and `fullchain.pem` to be in +### Production +In a production environment, the deployment expects `privkey.pem` and `fullchain.pem` to be in the `/etc/letsencrypt/live/test.specifysystems.org-0001/privkey.pem` directory +Before the Test Panel is running, you can install `nginx` locally + +```bash +sudo apt install nginx +sudo service nginx start +``` + +The SSL certs must be for both `test.specifysystems.org` and `*.test.specifysystems.org`. +We use [DigitalOcean to manage the DNS configuration](https://www.digitalocean.com/community/tutorials/how-to-create-let-s-encrypt-wildcard-certificates-with-certbot) (Dreamhost doesn't support wilcard certificates). + +Follow [these instructions](https://www.digitalocean.com/community/tutorials/how-to-create-let-s-encrypt-wildcard-certificates-with-certbot) to create the `~/certbot-creds.ini` file necessary to generate the SSL certificates. + +Once it is started, you can use certbot to generate the certificates: + +```bash +sudo certbot certonly --dns-digitalocean --dns-digitalocean-credentials ~/certbot-creds.ini -d test.specifysystems.org,*.test.specifysystems.org +``` + +Now that this is done, make sure to remove the local `nginx` installation so it does not conflict with the one in Docker: + +``` +sudo systemctl stop nginx +sudo apt-get purge nginx +``` + ## Create a GitHub OAuth App In order to enable authentication though GitHub and usage of GitHub APIs, a @@ -120,6 +146,23 @@ MYSQL_PASSWORD=root MYSQL_HOST=mariadb ``` +### Using RDS + +Since we do not use MariaDB in Docker when working with Amazon RDS, you need to set up the connection details in this same file: + +```ini +NEXT_PUBLIC_GITHUB_CLIENT_ID= +GITHUB_CLIENT_SECRET= + +GITHUB_PERSONAL_TOKEN= + +MYSQL_USERNAME= +MYSQL_PASSWORD= +MYSQL_HOST=something.something.us-east-1.rds.amazonaws.com +``` + +### Configuration + Replace `` and `` with the actual values from the OAuth app configuration page on GitHub ([see more details](#create-a-github-oauth-app)) @@ -211,6 +254,10 @@ types. ## Watch for configuration file changes +You can choose either approach. You do not need to use both `systemd` and `fswatch` solutions as they do the same thing. + +The `systemd` approach may be preferable as it can be configured to automatically start when the system boots up. + ### Using systemd After user changes the configuration in the panel, the file From cafb77ab4e52a0eb25976f7e5975e79374c5763c Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Mon, 19 Aug 2024 14:26:42 -0500 Subject: [PATCH 09/14] Add new environment variables --- README.md | 7 +++++++ app/lib/dockerCompose.ts | 12 ++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b352d98..63c1c8d 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,13 @@ GITHUB_PERSONAL_TOKEN= MYSQL_USERNAME=root MYSQL_PASSWORD=root MYSQL_HOST=mariadb + +REPORT_RUNNER_HOST=report-runner + +SECRET_KEY= + +ASSET_SERVER_KEY= +ASSET_SERVER_URL=asset-server ``` ### Using RDS diff --git a/app/lib/dockerCompose.ts b/app/lib/dockerCompose.ts index 279278a..e0bc6c3 100644 --- a/app/lib/dockerCompose.ts +++ b/app/lib/dockerCompose.ts @@ -43,8 +43,10 @@ ${deployments - DATABASE_HOST=${process.env.MYSQL_HOST} - MASTER_NAME=${process.env.MYSQL_USERNAME} - MASTER_PASSWORD=${process.env.MYSQL_PASSWORD} - - SECRET_KEY="change this to some unique random string" - - REPORT_RUNNER_HOST=report-runner + - SECRET_KEY=${process.env.SECRET_KEY} + - ASSET_SERVER_URL=${process.env.ASSET_SERVER_URL} + - ASSET_SERVER_KEY=${process.env.ASSET_SERVER_KEY} + - REPORT_RUNNER_HOST=${process.env.REPORT_RUNNER_HOST} - REPORT_RUNNER_PORT=8080 - CELERY_BROKER_URL=redis://redis/0 - CELERY_RESULT_BACKEND=redis://redis/1 @@ -71,8 +73,10 @@ ${deployments - DATABASE_HOST=${process.env.MYSQL_HOST} - MASTER_NAME=${process.env.MYSQL_USERNAME} - MASTER_PASSWORD=${process.env.MYSQL_PASSWORD} - - SECRET_KEY="change this to some unique random string" - - REPORT_RUNNER_HOST=report-runner + - SECRET_KEY=${process.env.SECRET_KEY} + - ASSET_SERVER_URL=${process.env.ASSET_SERVER_URL} + - ASSET_SERVER_KEY=${process.env.ASSET_SERVER_KEY} + - REPORT_RUNNER_HOST=${process.env.REPORT_RUNNER_HOST} - REPORT_RUNNER_PORT=8080 - CELERY_BROKER_URL=redis://redis/0 - CELERY_RESULT_BACKEND=redis://redis/1 From a5178b38c718e5c28097c71619ce31868269e72f Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Mon, 19 Aug 2024 18:05:58 -0500 Subject: [PATCH 10/14] Remove `version` attribute Resolves 'the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion' --- app/lib/dockerCompose.ts | 1 - docker-compose.development.yml | 1 - docker-compose.production.yml | 1 - docker-compose.yml | 1 - state/docker-compose.yml | 1 - 5 files changed, 5 deletions(-) diff --git a/app/lib/dockerCompose.ts b/app/lib/dockerCompose.ts index e0bc6c3..18f39b4 100644 --- a/app/lib/dockerCompose.ts +++ b/app/lib/dockerCompose.ts @@ -14,7 +14,6 @@ export const createDockerConfig = ( // This is used just to make docker Nginx container if config changed nginxConfigHash: number ): string => ` -version: '3.9' services: ${ diff --git a/docker-compose.development.yml b/docker-compose.development.yml index a3d6d4b..0bf0e6c 100644 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -1,6 +1,5 @@ # Development config -version: '3.9' services: nginx: depends_on: diff --git a/docker-compose.production.yml b/docker-compose.production.yml index 62e43c0..2fc6c9b 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -1,6 +1,5 @@ # Production config -version: '3.9' services: nginx: depends_on: diff --git a/docker-compose.yml b/docker-compose.yml index 0b017e2..c1331b1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,3 @@ -version: '3.9' services: # mariadb: # image: mariadb:11.4 diff --git a/state/docker-compose.yml b/state/docker-compose.yml index 8c78348..85cd3c4 100644 --- a/state/docker-compose.yml +++ b/state/docker-compose.yml @@ -1,7 +1,6 @@ # docker-compose doesn't like empty files, so this redundant nginx extend # is provided: -version: '3.9' services: nginx: restart: unless-stopped From efc89058c8221c28be402591e77ca917ccc362b5 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Mon, 19 Aug 2024 18:07:24 -0500 Subject: [PATCH 11/14] Prefer local report-runner --- docker-compose.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index c1331b1..b40512a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,5 @@ services: + # If you run `mariadb` in Docker, uncomment these lines: # mariadb: # image: mariadb:11.4 # networks: @@ -30,15 +31,13 @@ services: - 'nginx-conf:/etc/nginx/conf.d/servers:ro' - './config/panel.conf:/etc/nginx/conf.d/default.conf:ro' - report-runner: - image: specifyconsortium/report-runner - volumes: - - './report-fonts.jar:/var/lib/jetty/webapps/ROOT/WEB-INF/lib/report-fonts.jar:ro' - networks: - - database + # If you run `report-runner` in Docker, uncomment these lines: + # report-runner: + # image: specifyconsortium/report-runner + # volumes: + # - './report-fonts.jar:/var/lib/jetty/webapps/ROOT/WEB-INF/lib/report-fonts.jar:ro' volumes: - database: state: nginx-conf: From c45b63ea96bcee15b90dc15c43d584504d261b18 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Mon, 19 Aug 2024 20:58:41 -0500 Subject: [PATCH 12/14] Add Asset Server Collection --- app/lib/dockerCompose.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/lib/dockerCompose.ts b/app/lib/dockerCompose.ts index 18f39b4..e160205 100644 --- a/app/lib/dockerCompose.ts +++ b/app/lib/dockerCompose.ts @@ -45,6 +45,7 @@ ${deployments - SECRET_KEY=${process.env.SECRET_KEY} - ASSET_SERVER_URL=${process.env.ASSET_SERVER_URL} - ASSET_SERVER_KEY=${process.env.ASSET_SERVER_KEY} + - ASSET_SERVER_COLLECTION=${process.env.ASSET_SERVER_COLLECTION} - REPORT_RUNNER_HOST=${process.env.REPORT_RUNNER_HOST} - REPORT_RUNNER_PORT=8080 - CELERY_BROKER_URL=redis://redis/0 @@ -75,6 +76,7 @@ ${deployments - SECRET_KEY=${process.env.SECRET_KEY} - ASSET_SERVER_URL=${process.env.ASSET_SERVER_URL} - ASSET_SERVER_KEY=${process.env.ASSET_SERVER_KEY} + - ASSET_SERVER_COLLECTION=${process.env.ASSET_SERVER_COLLECTION} - REPORT_RUNNER_HOST=${process.env.REPORT_RUNNER_HOST} - REPORT_RUNNER_PORT=8080 - CELERY_BROKER_URL=redis://redis/0 From a490e6469b646b5320f10959f4ee4d5e38ad2d51 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Tue, 20 Aug 2024 09:06:09 -0500 Subject: [PATCH 13/14] Remove robot talk --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index 63c1c8d..79d6b2a 100644 --- a/README.md +++ b/README.md @@ -343,11 +343,7 @@ specify6803: ``` docker-compose up ``` -This should allow you to run the `x86_64` images on your `arm64` platform using the `binfmt_misc` emulation layer. -Note that you may need to adjust the `binfmt_misc` configuration and the `docker-compose.yml` file to fit your specific use case. - -Let me know if you have any further questions or if there's anything else I can help you with! ### Using fswatch From accb2b686f12126b4e8b4cc5bc525134dac2b90a Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Tue, 20 Aug 2024 09:08:45 -0500 Subject: [PATCH 14/14] Remove Specify 6 image instructions --- README.md | 39 --------------------------------------- app/lib/dockerCompose.ts | 2 +- 2 files changed, 1 insertion(+), 40 deletions(-) diff --git a/README.md b/README.md index 79d6b2a..18bea98 100644 --- a/README.md +++ b/README.md @@ -306,45 +306,6 @@ systemctl enable specify7-test-panel-update.path systemctl start specify7-test-panel-update.path ``` -### Emulating x86_64 for Specify 6 images - -Using an emulation layer like `binfmt_misc` or `docker-run-arm` can help you run `x86_64` images on an `arm64` platform. - -Here's an example of how you can use `binfmt_misc` to run `x86_64` images on an `arm64` platform: - -1. Install `binfmt_misc` on your system: -``` -sudo apt-get update -sudo apt-get install binfmt-support qemu-user-static -``` -2. Configure `binfmt_misc` to enable emulation: -``` -sudo update-binfmts --enable -``` -3. Create a `binfmt_misc` configuration file to enable `x86_64` emulation: -``` -sudo tee /proc/sys/fs/binfmt_misc/register <