Skip to content

Commit d8b18d3

Browse files
authored
chore: support for building the cube:latest image with local changes (#5822)
1 parent 38eab24 commit d8b18d3

File tree

3 files changed

+95
-1
lines changed

3 files changed

+95
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"tsc:watch": "tsc --build --watch",
2525
"clean": "rimraf packages/*/{tsconfig.tsbuildinfo,lib,dist}",
2626
"postinstall": "lerna link && patch-package",
27-
"link:dev": "cd packages/cubejs-backend-shared && cd ../cubejs-backend-shared && npm link && cd ../cubejs-backend-cloud && npm link && cd ../cubejs-backend-native && npm link && cd ../cubejs-server && npm link && cd ../cubejs-server-core && npm link && cd ../cubejs-api-gateway && npm link && cd ../cubejs-schema-compiler && npm link && cd ../cubejs-query-orchestrator && npm link && cd ../cubejs-athena-driver && npm link && cd ../cubejs-bigquery-driver && npm link && cd ../cubejs-postgres-driver && npm link && cd ../cubejs-databricks-jdbc-driver && npm link && cd ../cubejs-mssql-driver && npm link && cd ../cubejs-clickhouse-driver && npm link && cd ../cubejs-templates && npm link && cd ../cubejs-client-core && npm link && cd ../cubejs-client-ws-transport && npm link && cd ../cubejs-playground && npm link"
27+
"link:dev": "cd packages/cubejs-backend-shared && cd ../cubejs-backend-shared && yarn link && cd ../cubejs-backend-cloud && yarn link && cd ../cubejs-backend-native && yarn link && cd ../cubejs-server && yarn link && cd ../cubejs-server-core && yarn link && cd ../cubejs-api-gateway && yarn link && cd ../cubejs-schema-compiler && yarn link && cd ../cubejs-query-orchestrator && yarn link && cd ../cubejs-athena-driver && yarn link && cd ../cubejs-bigquery-driver && yarn link && cd ../cubejs-postgres-driver && yarn link && cd ../cubejs-databricks-jdbc-driver && yarn link && cd ../cubejs-mssql-driver && yarn link && cd ../cubejs-clickhouse-driver && yarn link && cd ../cubejs-templates && yarn link && cd ../cubejs-client-core && yarn link && cd ../cubejs-client-ws-transport && yarn link && cd ../cubejs-playground && yarn link"
2828
},
2929
"author": "Cube Dev, Inc.",
3030
"dependencies": {
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
ARG DEV_BUILD_IMAGE=cubejs/cube:build
2+
FROM $DEV_BUILD_IMAGE as build
3+
FROM node:14.20.0-bullseye-slim
4+
5+
ARG IMAGE_VERSION=dev
6+
7+
ENV CUBEJS_DOCKER_IMAGE_VERSION=$IMAGE_VERSION
8+
ENV CUBEJS_DOCKER_IMAGE_TAG=latest
9+
10+
RUN DEBIAN_FRONTEND=noninteractive \
11+
&& apt-get update \
12+
&& apt-get install -y --no-install-recommends rxvt-unicode libssl1.1 \
13+
&& rm -rf /var/lib/apt/lists/*
14+
15+
ENV TERM rxvt-unicode
16+
ENV NODE_ENV production
17+
18+
WORKDIR /cube
19+
COPY . .
20+
# Unlike latest.Dockerfile, this one doesn't install the latest cubejs from
21+
# npm, but rather copies all the artifacts from the dev image and links them to
22+
# the /cube directory
23+
COPY --from=build /cubejs /cube-build
24+
RUN cd /cube-build && yarn run link:dev
25+
COPY package.json.local package.json
26+
27+
RUN yarn policies set-version v1.22.5
28+
29+
# Required for node-oracledb to buld on ARM64
30+
RUN apt-get update \
31+
&& apt-get install -y python2 python3 gcc g++ make cmake \
32+
&& npm config set python /usr/bin/python2.7 \
33+
&& rm -rf /var/lib/apt/lists/*
34+
35+
# We are copying root yarn.lock file to the context folder during the Publish GH
36+
# action. So, a process will use the root lock file here.
37+
RUN yarn install && yarn cache clean && yarn link:dev
38+
39+
# By default Node dont search in parent directory from /cube/conf, @todo Reaserch a little bit more
40+
ENV NODE_PATH /cube/conf/node_modules:/cube/node_modules
41+
RUN ln -s /cube/node_modules/.bin/cubejs /usr/local/bin/cubejs
42+
RUN ln -s /cube/node_modules/.bin/cubestore-dev /usr/local/bin/cubestore-dev
43+
44+
WORKDIR /cube/conf
45+
46+
EXPOSE 4000
47+
48+
CMD ["cubejs", "server"]
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
{
2+
"name": "@cubejs-backend/docker",
3+
"version": "0.31.20",
4+
"description": "Cube.js In Docker (virtual package)",
5+
"author": "Cube Dev, Inc.",
6+
"license": "Apache-2.0",
7+
"private": true,
8+
"engines": {
9+
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
10+
},
11+
"scripts": {
12+
"link:dev": "yarn link @cubejs-backend/shared @cubejs-backend/server @cubejs-backend/server-core @cubejs-backend/api-gateway @cubejs-backend/schema-compiler @cubejs-backend/query-orchestrator @cubejs-client/ws-transport @cubejs-client/core @cubejs-backend/templates @cubejs-client/playground @cubejs-backend/athena-driver @cubejs-backend/bigquery-driver @cubejs-backend/postgres-driver @cubejs-backend/mssql-driver"
13+
},
14+
"dependencies": {
15+
"@cubejs-backend/athena-driver": "file:/cube-build/packages/cubejs-athena-driver",
16+
"@cubejs-backend/bigquery-driver": "file:/cube-build/packages/cubejs-bigquery-driver",
17+
"@cubejs-backend/clickhouse-driver": "file:/cube-build/packages/cubejs-clickhouse-driver",
18+
"@cubejs-backend/crate-driver": "file:/cube-build/packages/cubejs-crate-driver",
19+
"@cubejs-backend/databricks-jdbc-driver": "file:/cube-build/packages/cubejs-jdbc-driver",
20+
"@cubejs-backend/dbt-schema-extension": "file:/cube-build/packages/cubejs-dbt-schema-extension",
21+
"@cubejs-backend/dremio-driver": "file:/cube-build/packages/cubejs-dremio-driver",
22+
"@cubejs-backend/druid-driver": "file:/cube-build/packages/cubejs-druid-driver",
23+
"@cubejs-backend/elasticsearch-driver": "file:/cube-build/packages/cubejs-elasticsearch-driver",
24+
"@cubejs-backend/firebolt-driver": "file:/cube-build/packages/cubejs-firebolt-driver",
25+
"@cubejs-backend/hive-driver": "file:/cube-build/packages/cubejs-hive-driver",
26+
"@cubejs-backend/ksql-driver": "file:/cube-build/packages/cubejs-ksql-driver",
27+
"@cubejs-backend/materialize-driver": "file:/cube-build/packages/cubejs-materialize-driver",
28+
"@cubejs-backend/mongobi-driver": "file:/cube-build/packages/cubejs-mongobi-driver",
29+
"@cubejs-backend/mssql-driver": "file:/cube-build/packages/cubejs-mssql-driver",
30+
"@cubejs-backend/mysql-driver": "file:/cube-build/packages/cubejs-mysql-driver",
31+
"@cubejs-backend/oracle-driver": "file:/cube-build/packages/cubejs-oracle-driver",
32+
"@cubejs-backend/postgres-driver": "file:/cube-build/packages/cubejs-postgres-driver",
33+
"@cubejs-backend/prestodb-driver": "file:/cube-build/packages/cubejs-prestodb-driver",
34+
"@cubejs-backend/questdb-driver": "file:/cube-build/packages/cubejs-questdb-driver",
35+
"@cubejs-backend/redshift-driver": "file:/cube-build/packages/cubejs-redshift-driver",
36+
"@cubejs-backend/server": "file:/cube-build/packages/cubejs-server",
37+
"@cubejs-backend/snowflake-driver": "file:/cube-build/packages/cubejs-snowflake-driver",
38+
"@cubejs-backend/sqlite-driver": "file:/cube-build/packages/cubejs-sqlite-driver",
39+
"@cubejs-backend/trino-driver": "file:/cube-build/packages/cubejs-trino-driver",
40+
"cubejs-cli": "file:/cube-build/packages/cubejs-cli",
41+
"typescript": "~4.1.5"
42+
},
43+
"resolutions": {
44+
"colors": "1.4.0"
45+
}
46+
}

0 commit comments

Comments
 (0)