You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ma...@apache.org on 2024/03/08 01:59:27 UTC
(superset) 01/01: feat: docker-compose to work off repo Dockerfile
This is an automated email from the ASF dual-hosted git repository.
maximebeauchemin pushed a commit to branch docker-compose
in repository https://gitbox.apache.org/repos/asf/superset.git
commit 39a2b21b5b4f992e8a01d6a63752601d93fc2224
Author: Maxime Beauchemin <ma...@gmail.com>
AuthorDate: Mon Feb 26 17:37:57 2024 -0800
feat: docker-compose to work off repo Dockerfile
Currently our docker-compose setup pulls images that have been built
recently on the `master` branch. While this works in most cases, it's
non-deterministic on not guaranteed to always work. For example if I
merge a PR to master that removes a certain python library for instance,
people in branches out there doing development that still have that
dependencies are not going to work.
In this PR, I change the docker-compose setup(s) to:
- reference the local Dockerfile
- point to the right cache location (apache/superset-cache:....)
- make that DRY since it's repeated many times across the docker-compose
files
- touch up both docker-compose.yml and docker-compose-non-dev.yml with
the same approach
As far as testing goes, I made sure this builds and that the resulting
setup is functional. I was also very fast in my experience, the cache
was clearly leveraged here.
---
docker-compose-non-dev.yml | 19 ++++++++++++++-----
docker-compose.yml | 22 ++++++++++++++++------
2 files changed, 30 insertions(+), 11 deletions(-)
diff --git a/docker-compose-non-dev.yml b/docker-compose-non-dev.yml
index 34aec9bbb7..d5c142926a 100644
--- a/docker-compose-non-dev.yml
+++ b/docker-compose-non-dev.yml
@@ -14,7 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-x-superset-image: &superset-image apachesuperset.docker.scarf.sh/apache/superset:${TAG:-latest}
x-superset-depends-on: &superset-depends-on
- db
- redis
@@ -23,6 +22,12 @@ x-superset-volumes:
- ./docker:/app/docker
- superset_home:/app/superset_home
+x-common-build: &common-build
+ context: .
+ target: dev
+ cache_from:
+ - apache/superset-cache:3.9-slim-bookworm
+
version: "3.7"
services:
redis:
@@ -43,7 +48,8 @@ services:
superset:
env_file: docker/.env-non-dev
- image: *superset-image
+ build:
+ <<: *common-build
container_name: superset_app
command: ["/app/docker/docker-bootstrap.sh", "app-gunicorn"]
user: "root"
@@ -54,8 +60,9 @@ services:
volumes: *superset-volumes
superset-init:
- image: *superset-image
container_name: superset_init
+ build:
+ <<: *common-build
command: ["/app/docker/docker-init.sh"]
env_file: docker/.env-non-dev
depends_on: *superset-depends-on
@@ -65,7 +72,8 @@ services:
disable: true
superset-worker:
- image: *superset-image
+ build:
+ <<: *common-build
container_name: superset_worker
command: ["/app/docker/docker-bootstrap.sh", "worker"]
env_file: docker/.env-non-dev
@@ -81,7 +89,8 @@ services:
]
superset-worker-beat:
- image: *superset-image
+ build:
+ <<: *common-build
container_name: superset_worker_beat
command: ["/app/docker/docker-bootstrap.sh", "beat"]
env_file: docker/.env-non-dev
diff --git a/docker-compose.yml b/docker-compose.yml
index aba88707ca..0c2d53c775 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -14,7 +14,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-x-superset-image: &superset-image apachesuperset.docker.scarf.sh/apache/superset:${TAG:-master-dev}
x-superset-user: &superset-user root
x-superset-depends-on: &superset-depends-on
- db
@@ -27,6 +26,12 @@ x-superset-volumes: &superset-volumes
- superset_home:/app/superset_home
- ./tests:/app/tests
+x-common-build: &common-build
+ context: .
+ target: dev
+ cache_from:
+ - apache/superset-cache:3.9-slim-bookworm
+
version: "3.7"
services:
nginx:
@@ -61,7 +66,8 @@ services:
superset:
env_file: docker/.env
- image: *superset-image
+ build:
+ <<: *common-build
container_name: superset_app
command: ["/app/docker/docker-bootstrap.sh", "app"]
restart: unless-stopped
@@ -106,7 +112,8 @@ services:
- REDIS_SSL=false
superset-init:
- image: *superset-image
+ build:
+ <<: *common-build
container_name: superset_init
command: ["/app/docker/docker-init.sh"]
env_file: docker/.env
@@ -129,7 +136,8 @@ services:
volumes: *superset-volumes
superset-worker:
- image: *superset-image
+ build:
+ <<: *common-build
container_name: superset_worker
command: ["/app/docker/docker-bootstrap.sh", "worker"]
env_file: docker/.env
@@ -146,7 +154,8 @@ services:
# mem_reservation: 128M
superset-worker-beat:
- image: *superset-image
+ build:
+ <<: *common-build
container_name: superset_worker_beat
command: ["/app/docker/docker-bootstrap.sh", "beat"]
env_file: docker/.env
@@ -158,7 +167,8 @@ services:
disable: true
superset-tests-worker:
- image: *superset-image
+ build:
+ <<: *common-build
container_name: superset_tests_worker
command: ["/app/docker/docker-bootstrap.sh", "worker"]
env_file: docker/.env