Skip to content

Commit

Permalink
Publish docker image (GMOD#370)
Browse files Browse the repository at this point in the history
* Update docker compose

* Add labels to Dockerfiles

* publish.yml added

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* dummy commit

* test deployment

* test deployment

* test deployment

* test deployment

* test deployment

* port fix

* mongo db started fix

* node base image arm64 platform fix

* arm64 issue fix test

* arm64 issue fix test

* Remove pm2

* Use URL directly for redirect

* Revert unrelated changes

* Move container publish to push job

* Update docker push action version

* Re-enable other push steps

* Log in since package is private for now

---------

Co-authored-by: Kyosti Sutinen <kyosti@ebi.ac.uk>
Co-authored-by: Shashank Budhanuru Ramaraju <shashank.b.r.gowda45587@gmail.com>
  • Loading branch information
3 people authored Mar 20, 2024
1 parent dd6c7a0 commit 8f2a859
Show file tree
Hide file tree
Showing 11 changed files with 98 additions and 760 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/deploy/compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: apollo-demo-site

services:
apollo-collaboration-server:
image: public.ecr.aws/p1r0y7k4/apollo-collaboration-server-alpha:arm
image: ghcr.io/gmod/apollo-collaboration-server:development
depends_on:
mongo-node-1:
condition: service_healthy
Expand Down
30 changes: 30 additions & 0 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,34 @@ jobs:
working-directory: packages/apollo-shared
- name: Lint codebase
run: yarn eslint --ext .js,.ts,.jsx,.tsx .
build-and-push-docker:
name: Build and push Docker image
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to the GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push Apollo collaboration server image
uses: docker/build-push-action@v5
with:
platforms: linux/arm64/v8,linux/amd64
push: true
tags: ghcr.io/gmod/apollo-collaboration-server:development
outputs: type=image,annotation-index.org.opencontainers.image.description=Apollo collaboration server
deploy:
name: Deploy to demo staging server
runs-on: ubuntu-latest
environment: staging
if: github.ref == 'refs/heads/main'
needs: build-and-push-docker
steps:
- name: Check out
uses: actions/checkout@v3
Expand Down Expand Up @@ -80,6 +104,12 @@ jobs:
docker context create staging \
--docker host=ssh://staging \
--description "Staging server"
- name: Log in to the GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Deploy
env:
JWT_SECRET: ${{ secrets.JWT_SECRET }}
Expand Down
31 changes: 31 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# syntax=docker/dockerfile:1

FROM node:18 AS setup
WORKDIR /app
COPY package.json yarn.lock .yarnrc.yml ./
COPY .yarn/ .yarn/
COPY packages/ packages/
RUN find packages/ -type f \! \( -name "package.json" -o -name "yarn.lock" \) -delete && \
find . -type d -empty -delete

FROM node:18 AS build
WORKDIR /app
COPY --from=setup /app .
RUN yarn install --immutable
COPY . .
WORKDIR /app/packages/apollo-collaboration-server
RUN yarn build

FROM node:18
LABEL org.opencontainers.image.source=https://github.com/GMOD/Apollo3
LABEL org.opencontainers.image.description="Apollo collaboration server"
WORKDIR /app
COPY --from=setup /app .
COPY --from=build /app/packages/apollo-collaboration-server/dist /app/packages/apollo-collaboration-server/dist
COPY --from=build /app/packages/apollo-common/dist /app/packages/apollo-common/dist
COPY --from=build /app/packages/apollo-mst/dist /app/packages/apollo-mst/dist
COPY --from=build /app/packages/apollo-schemas/dist /app/packages/apollo-schemas/dist
COPY --from=build /app/packages/apollo-shared/dist /app/packages/apollo-shared/dist
RUN yarn workspaces focus --production apollo-collaboration-server
EXPOSE 3999
CMD ["yarn", "start:prod"]
67 changes: 0 additions & 67 deletions docker-compose.yml

This file was deleted.

2 changes: 1 addition & 1 deletion packages/apollo-collaboration-server/.development.env
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
##############

# URL
URL=http://localhost
URL=http://localhost:3999

# MongoDB connection
MONGODB_URI=mongodb://127.0.0.1:27017/apolloDb
Expand Down
3 changes: 1 addition & 2 deletions packages/apollo-collaboration-server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"start:no-watch": "yarn build:shared && yarn start:nest",
"start:debug": "yarn build:shared && yarn start:nest --debug --watch",
"deb": "ts-node-dev src/main.ts",
"start:prod": "NODE_ENV=production pm2 --no-daemon start dist/main.js",
"start:prod": "NODE_ENV=production node dist/main.js",
"test": "jest",
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
Expand Down Expand Up @@ -64,7 +64,6 @@
"passport-jwt": "^4.0.0",
"passport-local": "^1.0.0",
"passport-microsoft": "^1.0.0",
"pm2": "^5.3.0",
"prop-types": "^15.8.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,6 @@ export class GoogleStrategy extends PassportStrategy(Strategy) {
}
const urlString = configService.get('URL', { infer: true })
const callbackURI = new URL(urlString)
const port = configService.get('PORT', { infer: true })
callbackURI.port = String(port)
callbackURI.pathname = `${callbackURI.pathname}${
callbackURI.pathname.endsWith('/') ? '' : '/'
}auth/google`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,6 @@ export class MicrosoftStrategy extends PassportStrategy(Strategy) {
}
const urlString = configService.get('URL', { infer: true })
const callbackURI = new URL(urlString)
const port = configService.get('PORT', { infer: true })
callbackURI.port = String(port)
callbackURI.pathname = `${callbackURI.pathname}${
callbackURI.pathname.endsWith('/') ? '' : '/'
}auth/microsoft`
Expand Down
20 changes: 0 additions & 20 deletions plugin.Dockerfile

This file was deleted.

19 changes: 0 additions & 19 deletions server.Dockerfile

This file was deleted.

Loading

0 comments on commit 8f2a859

Please sign in to comment.