diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000..ef71f62e07 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +**/node_modules +.git +website +assets diff --git a/.github/workflows/companion-deploy.yml b/.github/workflows/companion-deploy.yml index 5dfdc0e0da..9d08465c34 100644 --- a/.github/workflows/companion-deploy.yml +++ b/.github/workflows/companion-deploy.yml @@ -32,8 +32,8 @@ jobs: uses: docker/build-push-action@v2 with: push: true - context: packages/@uppy/companion - file: packages/@uppy/companion/Dockerfile + context: . + file: Dockerfile tags: ${{ steps.docker_meta.outputs.tags }} labels: ${{ steps.docker_meta.outputs.labels }} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000..567fe7fb31 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,33 @@ +FROM node:16.13.0-alpine as build + +WORKDIR /app + +COPY package.json .yarnrc.yml /app/ +COPY .yarn /app/.yarn +COPY packages/@uppy/companion /app/packages/@uppy/companion + +RUN apk --update add --virtual native-dep \ + make gcc g++ python3 libgcc libstdc++ git && \ + (cd /app && corepack yarn workspaces focus @uppy/companion) && \ + apk del native-dep + +RUN cd /app && corepack yarn workspace @uppy/companion build + +# Now remove all non-prod dependencies for a leaner image +RUN cd /app && corepack yarn workspaces focus @uppy/companion --production + +FROM node:16.13.0-alpine + +WORKDIR /app + +# copy required files from build stage. +COPY --from=build /app/packages/@uppy/companion/bin /app/bin +COPY --from=build /app/packages/@uppy/companion/lib /app/lib +COPY --from=build /app/packages/@uppy/companion/package.json /app/package.json +COPY --from=build /app/packages/@uppy/companion/node_modules /app/node_modules + +ENV PATH "${PATH}:/app/node_modules/.bin" + +CMD ["node","/app/bin/companion"] +# This can be overruled later +EXPOSE 3020 diff --git a/packages/@uppy/companion/Dockerfile.test b/Dockerfile.test similarity index 100% rename from packages/@uppy/companion/Dockerfile.test rename to Dockerfile.test diff --git a/packages/@uppy/companion/docker-compose-dev.yml b/docker-compose-dev.yml similarity index 100% rename from packages/@uppy/companion/docker-compose-dev.yml rename to docker-compose-dev.yml diff --git a/packages/@uppy/companion/docker-compose-test.yml b/docker-compose-test.yml similarity index 100% rename from packages/@uppy/companion/docker-compose-test.yml rename to docker-compose-test.yml diff --git a/packages/@uppy/companion/docker-compose.yml b/docker-compose.yml similarity index 100% rename from packages/@uppy/companion/docker-compose.yml rename to docker-compose.yml diff --git a/package.json b/package.json index 7c100dba8e..2fe20dc127 100644 --- a/package.json +++ b/package.json @@ -190,6 +190,7 @@ ] }, "resolutions": { + "@types/redis": "2", "@types/eslint@^7.2.13": "^8.2.0", "npm-auth-to-token@1.0.0": "patch:npm-auth-to-token@npm:1.0.0#.yarn/patches/npm-auth-to-token-npm-1.0.0-c288ce201f" } diff --git a/packages/@uppy/companion/.dockerignore b/packages/@uppy/companion/.dockerignore deleted file mode 100644 index b512c09d47..0000000000 --- a/packages/@uppy/companion/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/packages/@uppy/companion/Dockerfile b/packages/@uppy/companion/Dockerfile deleted file mode 100644 index 69cf3ce93f..0000000000 --- a/packages/@uppy/companion/Dockerfile +++ /dev/null @@ -1,35 +0,0 @@ -FROM node:16.13.0-alpine as build - -COPY package.json /app/package.json - -WORKDIR /app - -# Install node_modules -# * to optionally copy lock files that _might_ _not_ exist -ADD package.json package-*.json yarn.* /tmp/ -RUN cd /tmp && apk --update add --virtual native-dep \ - make gcc g++ python3 libgcc libstdc++ git && \ - corepack yarn install && \ - apk del native-dep -RUN mkdir -p /app && cd /app && ln -nfs /tmp/node_modules -RUN apk add bash -COPY . /app -ENV PATH "${PATH}:/app/node_modules/.bin" -RUN corepack yarn run build - -FROM node:16.13.0-alpine - -RUN mkdir -p /app -WORKDIR /app - -# copy required files from build stage. -COPY --from=build /app/bin /app/bin -COPY --from=build /app/lib /app/lib -COPY --from=build /app/package.json /app/package.json -COPY --from=build /tmp/node_modules /app/node_modules - -ENV PATH "${PATH}:/app/node_modules/.bin" - -CMD ["node","/app/bin/companion"] -# This can be overruled later -EXPOSE 3020 diff --git a/packages/@uppy/companion/infra/kube/gcloud-deploy.sh b/packages/@uppy/companion/infra/kube/gcloud-deploy.sh index f648a74a9a..345297a2f1 100755 --- a/packages/@uppy/companion/infra/kube/gcloud-deploy.sh +++ b/packages/@uppy/companion/infra/kube/gcloud-deploy.sh @@ -17,7 +17,7 @@ mv ./kubectl ${HOME}/.local/bin/ # Store the new image in docker hub -docker build -t transloadit/companion:latest -t transloadit/companion:$TRAVIS_COMMIT -f packages/@uppy/companion/Dockerfile packages/@uppy/companion; +docker build -t transloadit/companion:latest -t transloadit/companion:$TRAVIS_COMMIT .; docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD"; # Push the commit tagged docker image. diff --git a/packages/@uppy/companion/package.json b/packages/@uppy/companion/package.json index 4fbfaf9fe9..20f077e016 100644 --- a/packages/@uppy/companion/package.json +++ b/packages/@uppy/companion/package.json @@ -114,5 +114,8 @@ }, "engines": { "node": ">=10.20.1" + }, + "installConfig": { + "hoistingLimits": "workspaces" } } diff --git a/yarn.lock b/yarn.lock index 9df04a7aa2..5f185aa65a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6783,7 +6783,7 @@ __metadata: languageName: node linkType: hard -"@types/redis@npm:*": +"@types/redis@npm:2": version: 2.8.32 resolution: "@types/redis@npm:2.8.32" dependencies: