Skip to content

Commit f62f760

Browse files
committed
fix(docker): remove unneeded build variables
1 parent e82e50e commit f62f760

File tree

12 files changed

+93
-74
lines changed

12 files changed

+93
-74
lines changed

.github/workflows/docker.yml

+13-17
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@ jobs:
1616
- name: Check out the repo
1717
uses: actions/checkout@v3
1818

19+
- name: Set up QEMU
20+
uses: docker/setup-qemu-action@v2
21+
22+
- name: Set up Docker Buildx
23+
uses: docker/setup-buildx-action@v2
24+
1925
- name: Extract meta
2026
id: builder-meta
2127
uses: docker/metadata-action@v4
@@ -41,20 +47,10 @@ jobs:
4147
push: ${{ github.event_name != 'pull_request' }}
4248
tags: ${{ steps.builder-meta.outputs.tags }}
4349
labels: ${{ steps.builder-meta.outputs.labels }}
44-
build-args:
45-
NEXT_PUBLIC_HASURA_HTTP_ORIGIN: ${{ secrets.NEXT_PUBLIC_HASURA_HTTP_ORIGIN }}
46-
NEXT_PUBLIC_HASURA_WS_ORIGIN: ${{ secrets.NEXT_PUBLIC_HASURA_HTTP_ORIGIN }}
47-
NEXT_PUBLIC_APP_URL: ${{ secrets.NEXT_PUBLIC_APP_URL }}
48-
NEXT_PUBLIC_VAPID: ${{ secrets.NEXT_PUBLIC_VAPID }}
49-
NEXT_PUBLIC_ANALYTICS_DOMAIN: ${{ secrets.NEXT_PUBLIC_ANALYTICS_DOMAIN }}
50-
NEXTAUTH_URL: ${{ secrets.NEXTAUTH_URL }}
51-
HASURA_ADMIN_SECRET: ${{ secrets.HASURA_ADMIN_SECRET }}
52-
HASURA_EVENT_SECRET: ${{ secrets.HASURA_EVENT_SECRET }}
53-
HASH_ALGORITHM: ${{ secrets.HASH_ALGORITHM }}
54-
NEXTAUTH_SECRET: ${{ secrets.NEXTAUTH_SECRET }}
55-
PRIVATE_VAPID: ${{ secrets.PRIVATE_VAPID }}
56-
EMAIL_API_KEY: ${{ secrets.EMAIL_API_KEY }}
57-
GITHUB_CLIENT_ID: ${{ secrets.GITHUB_CLIENT_ID }}
58-
GITHUB_CLIENT_SECRET: ${{ secrets.GITHUB_CLIENT_SECRET }}
59-
TWITTER_CONSUMER_KEY: ${{ secrets.TWITTER_CONSUMER_KEY }}
60-
TWITTER_CONSUMER_SECRET: ${{ secrets.TWITTER_CONSUMER_SECRET }}
50+
cache-from: type=registry,ref=devrsi0n/chirpy:buildcache
51+
cache-to: type=registry,ref=devrsi0n/chirpy:buildcache,mode=max
52+
# Don't put any sensitive key to build-args, as they'll be exposed to build history
53+
build-args: |
54+
NEXT_PUBLIC_APP_URL=${{ secrets.NEXT_PUBLIC_APP_URL }}
55+
NEXT_PUBLIC_ANALYTICS_DOMAIN=${{ secrets.NEXT_PUBLIC_ANALYTICS_DOMAIN }}
56+
NEXTAUTH_URL=${{ secrets.NEXTAUTH_URL }}

Dockerfile

+4-26
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,13 @@
1+
# syntax=docker/dockerfile:1
2+
13
FROM node:16-slim AS base
24
WORKDIR /app
3-
ARG NEXT_PUBLIC_HASURA_HTTP_ORIGIN
4-
ENV NEXT_PUBLIC_HASURA_HTTP_ORIGIN=${NEXT_PUBLIC_HASURA_HTTP_ORIGIN}
5-
ARG NEXT_PUBLIC_HASURA_WS_ORIGIN
6-
ENV NEXT_PUBLIC_HASURA_WS_ORIGIN=${NEXT_PUBLIC_HASURA_WS_ORIGIN}
75
ARG NEXT_PUBLIC_APP_URL
86
ENV NEXT_PUBLIC_APP_URL=${NEXT_PUBLIC_APP_URL}
9-
ARG NEXT_PUBLIC_VAPID
10-
ENV NEXT_PUBLIC_VAPID=${NEXT_PUBLIC_VAPID}
11-
ARG NEXT_PUBLIC_ANALYTICS_DOMAIN
12-
ENV NEXT_PUBLIC_ANALYTICS_DOMAIN=${NEXT_PUBLIC_ANALYTICS_DOMAIN}
137
ARG NEXTAUTH_URL
148
ENV NEXTAUTH_URL=${NEXTAUTH_URL}
15-
ARG HASURA_ADMIN_SECRET
16-
ENV HASURA_ADMIN_SECRET=${HASURA_ADMIN_SECRET}
17-
ARG HASURA_EVENT_SECRET
18-
ENV HASURA_EVENT_SECRET=${HASURA_EVENT_SECRET}
19-
ARG HASH_ALGORITHM
20-
ENV HASH_ALGORITHM=${HASH_ALGORITHM}
21-
ARG NEXTAUTH_SECRET
22-
ENV NEXTAUTH_SECRET=${NEXTAUTH_SECRET}
23-
ARG PRIVATE_VAPID
24-
ENV PRIVATE_VAPID=${PRIVATE_VAPID}
25-
ARG EMAIL_API_KEY
26-
ENV EMAIL_API_KEY=${EMAIL_API_KEY}
27-
ARG GITHUB_CLIENT_ID
28-
ENV GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID}
29-
ARG GITHUB_CLIENT_SECRET
30-
ENV GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET}
31-
ARG TWITTER_CONSUMER_KEY
32-
ENV TWITTER_CONSUMER_KEY=${TWITTER_CONSUMER_KEY}
9+
ARG NEXT_PUBLIC_ANALYTICS_DOMAIN
10+
ENV NEXT_PUBLIC_ANALYTICS_DOMAIN=${NEXT_PUBLIC_ANALYTICS_DOMAIN}
3311
# Disable telemetry
3412
ENV NEXT_TELEMETRY_DISABLED=1
3513
ENV DOCKER=true

apps/main/src/blocks/analytics/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import dynamic from 'next/dynamic';
22

3+
// TODO: Make it SSR friendly
34
const AnalyticsBlock = dynamic(
45
() => import(/* webpackChunkName: "analytics-block"*/ './analytics'),
56
{

apps/main/src/pages/analytics/[domain].tsx

+8-1
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,16 @@ type PathParams = {
4646
};
4747

4848
export const getStaticPaths: GetStaticPaths<PathParams> = async () => {
49+
if (process.env.DOCKER) {
50+
return {
51+
paths: [],
52+
fallback: 'blocking',
53+
};
54+
}
55+
// TODO: only generated a subset of analytics pages
4956
const paths = await getAllProjectStaticPathsByDomain();
5057

51-
return { paths, fallback: true };
58+
return { paths, fallback: 'blocking' };
5259
};
5360

5461
export const getStaticProps: GetStaticProps<

apps/main/src/pages/blog/[...slug].tsx

+8-3
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,21 @@ type PathParam = {
4848
};
4949

5050
export const getStaticPaths: GetStaticPaths<PathParam> = async () => {
51+
if (process.env.DOCKER) {
52+
return {
53+
paths: [],
54+
fallback: 'blocking',
55+
};
56+
}
5157
const fileStructures = await getAllFileStructures(CONTAINER_FOLDER);
52-
const payload = {
58+
return {
5359
paths: fileStructures.map((f) => ({
5460
params: {
5561
slug: [...(f.ancestors || []), f.slug].filter(Boolean),
5662
},
5763
})),
58-
fallback: true,
64+
fallback: 'blocking',
5965
};
60-
return payload;
6166
};
6267

6368
export const getStaticProps: GetStaticProps<

apps/main/src/pages/docs/[[...slug]].tsx

+8-3
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,21 @@ type PathParam = {
5353
};
5454

5555
export const getStaticPaths: GetStaticPaths<PathParam> = async () => {
56+
if (process.env.DOCKER) {
57+
return {
58+
paths: [],
59+
fallback: 'blocking',
60+
};
61+
}
5662
const fileStructures = await getAllFileStructures(CONTAINER_FOLDER);
57-
const payload = {
63+
return {
5864
paths: fileStructures.map((f) => ({
5965
params: {
6066
slug: [...(f.ancestors || []), f.slug].filter(Boolean),
6167
},
6268
})),
63-
fallback: true,
69+
fallback: 'blocking',
6470
};
65-
return payload;
6671
};
6772

6873
export const getStaticProps: GetStaticProps<DocsProps, PathParam> = async ({

apps/main/src/pages/play.tsx

+10-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,11 @@ export default function PlayGround(): JSX.Element {
2222
<Alert
2323
type="info"
2424
title="Feel free to play around"
25-
content="We remove stale comments every 24 hours automatically."
25+
content={
26+
process.env.DOCKER
27+
? `We don't remove comment automatically`
28+
: 'We remove stale comments every 24 hours automatically.'
29+
}
2630
onClickDismiss={() => setShowAlert(false)}
2731
hideDismissButton
2832
/>
@@ -40,6 +44,11 @@ type StaticProps = {
4044
export const getStaticProps: GetStaticProps<StaticProps> = async (): Promise<
4145
GetStaticPropsResult<StaticProps>
4246
> => {
47+
if (process.env.DOCKER) {
48+
return {
49+
props: {},
50+
};
51+
}
4352
const beforeDate = cpDayjs()
4453
.subtract(1, isENVDev ? 'hour' : 'day')
4554
.toISOString();

apps/main/src/pages/theme/[domain].tsx

+8-3
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,16 @@ type PathParams = {
4646
};
4747

4848
export const getStaticPaths: GetStaticPaths<PathParams> = async () => {
49+
if (process.env.DOCKER) {
50+
return {
51+
paths: [],
52+
fallback: 'blocking',
53+
};
54+
}
55+
// TODO: only generated a subset of theme pages to improve build perf
4956
const paths = await getAllProjectStaticPathsByDomain();
5057

51-
// We'll pre-render only these paths at build time.
52-
// { fallback: false } means other routes should 404.
53-
return { paths, fallback: true };
58+
return { paths, fallback: 'blocking' };
5459
};
5560

5661
type StaticProps = {

apps/main/src/pages/widget/comment/[pageURL].tsx

+7-1
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,12 @@ const client = getAdminGqlClient();
8787

8888
// Get all project then prerender all their page comments
8989
export const getStaticPaths: GetStaticPaths<PathParams> = async () => {
90+
if (process.env.DOCKER) {
91+
return {
92+
paths: [],
93+
fallback: 'blocking',
94+
};
95+
}
9096
const freshPages = await query(
9197
FreshPagesDocument,
9298
{
@@ -106,7 +112,7 @@ export const getStaticPaths: GetStaticPaths<PathParams> = async () => {
106112

107113
// We'll pre-render only these paths at build time.
108114
// { fallback: false } means other routes should 404.
109-
return { paths, fallback: true };
115+
return { paths, fallback: 'blocking' };
110116
};
111117

112118
type StaticProps = PathParams &

apps/main/src/pages/widget/comment/timeline/[commentId].tsx

+6
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,12 @@ type StaticProps = PathParams &
8484
};
8585

8686
export const getStaticPaths: GetStaticPaths<PathParams> = async () => {
87+
if (process.env.DOCKER) {
88+
return {
89+
paths: [],
90+
fallback: 'blocking',
91+
};
92+
}
8793
const comments = await query(
8894
CommentsDocument,
8995
{

docker-compose.yml

+18-17
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,35 @@
11
version: '3'
22

3+
# Test docker build
34
services:
45
chirpy-main:
56
container_name: chirpy-main
67
image: devrsi0n/chirpy
78
build:
89
context: ./
910
dockerfile: Dockerfile
11+
# Don't put any sensitive key to build-args, as they'll be exposed to build history, https://github.com/docker/build-push-action/blob/master/docs/advanced/secrets.md
1012
args:
11-
NEXT_PUBLIC_HASURA_HTTP_ORIGIN: http://host.docker.internal:8080/v1/graphql
12-
NEXT_PUBLIC_HASURA_WS_ORIGIN: ws://host.docker.internal:8080/v1/graphql
13-
NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL}
14-
NEXT_PUBLIC_VAPID: ${NEXT_PUBLIC_VAPID}
13+
NEXT_PUBLIC_APP_URL: http://localhost:3000
1514
NEXT_PUBLIC_ANALYTICS_DOMAIN: ${NEXT_PUBLIC_ANALYTICS_DOMAIN}
16-
NEXTAUTH_URL: ${NEXTAUTH_URL}
17-
HASURA_ADMIN_SECRET: ${HASURA_ADMIN_SECRET}
18-
HASURA_EVENT_SECRET: ${HASURA_EVENT_SECRET}
19-
HASH_ALGORITHM: ${HASH_ALGORITHM}
20-
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
21-
PRIVATE_VAPID: ${PRIVATE_VAPID}
22-
EMAIL_API_KEY: ${EMAIL_API_KEY}
23-
GITHUB_CLIENT_ID: ${GITHUB_CLIENT_ID}
24-
GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET}
25-
TWITTER_CONSUMER_KEY: ${TWITTER_CONSUMER_KEY}
26-
TWITTER_CONSUMER_SECRET: ${TWITTER_CONSUMER_SECRET}
15+
NEXTAUTH_URL: http://localhost:3000
2716
environment:
2817
NEXT_PUBLIC_HASURA_HTTP_ORIGIN: http://127.0.0.1:8080/v1/graphql
2918
NEXT_PUBLIC_HASURA_WS_ORIGIN: ws://127.0.0.1:8080/v1/graphql
19+
NEXT_PUBLIC_APP_URL: http://localhost:3000
20+
NEXT_PUBLIC_VAPID: ${NEXT_PUBLIC_VAPID}
21+
NEXT_PUBLIC_ANALYTICS_DOMAIN: ${NEXT_PUBLIC_ANALYTICS_DOMAIN}
22+
NEXTAUTH_URL: http://localhost:3000
23+
HASURA_ADMIN_SECRET: ${HASURA_ADMIN_SECRET}
24+
HASURA_EVENT_SECRET: ${HASURA_EVENT_SECRET}
25+
HASH_ALGORITHM: ${HASH_ALGORITHM}
26+
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
27+
PRIVATE_VAPID: ${PRIVATE_VAPID}
28+
EMAIL_API_KEY: ${EMAIL_API_KEY}
29+
GITHUB_CLIENT_ID: ${GITHUB_CLIENT_ID}
30+
GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET}
31+
TWITTER_CONSUMER_KEY: ${TWITTER_CONSUMER_KEY}
32+
TWITTER_CONSUMER_SECRET: ${TWITTER_CONSUMER_SECRET}
3033
restart: always
3134
ports:
3235
- 3000:3000
@@ -35,8 +38,6 @@ services:
3538
# networks:
3639
# - my_network
3740

38-
# Add more containers below (nginx, postgres, etc.)
39-
4041
# Define a network, which allows containers to communicate
4142
# with each other, by using their container name as a hostname
4243
# networks:

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
"changeset": "changeset",
88
"version-packages": "changeset version",
99
"release": "turbo run build --filter=@chirpy-dev/main-app... && changeset publish",
10-
"build:local": "docker system prune -af && dotenv -e ./apps/main/.env.local docker compose build",
11-
"start:local": "dotenv -e ./apps/main/.env.local docker compose up",
10+
"build:docker:local": "docker system prune -af && dotenv -e ./apps/main/.env.local docker compose build",
11+
"start:docker:local": "dotenv -e ./apps/main/.env.local docker compose up",
1212
"debug": "docker run -it --entrypoint=/bin/bash chirpy-chirpy-main -i"
1313
},
1414
"engines": {

0 commit comments

Comments
 (0)