diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index fd8e4616bfc6..46afbcc9074d 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -114,6 +114,7 @@ jobs:
uses: docker/build-push-action@v2
if: github.repository == 'casdoor/casdoor' && github.event_name == 'push' && steps.should_push.outputs.push=='true'
with:
+ target: STANDARD
push: true
tags: casbin/casdoor:${{steps.get-current-tag.outputs.tag }},casbin/casdoor:latest
diff --git a/Dockerfile b/Dockerfile
index 1863705d06a2..ad7ac1cf2971 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,8 +1,3 @@
-FROM golang:1.17.5 AS BACK
-WORKDIR /go/src/casdoor
-COPY . .
-RUN ./build.sh && apt update && apt install wait-for-it && chmod +x /usr/bin/wait-for-it
-
FROM node:16.13.0 AS FRONT
WORKDIR /web
COPY ./web .
@@ -10,28 +5,43 @@ RUN yarn config set registry https://registry.npmmirror.com
RUN yarn install && yarn run build
-FROM debian:latest AS ALLINONE
-RUN apt update
-RUN apt install -y ca-certificates && update-ca-certificates
-RUN apt install -y mariadb-server mariadb-client && mkdir -p web/build && chmod 777 /tmp
+FROM golang:1.17.5 AS BACK
+WORKDIR /go/src/casdoor
+COPY . .
+RUN ./build.sh
+
+
+FROM alpine:latest AS STANDARD
LABEL MAINTAINER="https://casdoor.org/"
-COPY --from=BACK /go/src/casdoor/ ./
-COPY --from=BACK /usr/bin/wait-for-it ./
-COPY --from=FRONT /web/build /web/build
-CMD chmod 777 /tmp && service mariadb start&&\
-if [ "${MYSQL_ROOT_PASSWORD}" = "" ] ;then MYSQL_ROOT_PASSWORD=123456 ; fi&&\
-mysqladmin -u root password ${MYSQL_ROOT_PASSWORD} &&\
-./wait-for-it localhost:3306 -- ./server --createDatabase=true
-
-
-FROM alpine:latest
-RUN sed -i 's/https/http/' /etc/apk/repositories
-RUN apk add curl
-RUN apk add ca-certificates && update-ca-certificates
+
+WORKDIR /app
+COPY --from=BACK /go/src/casdoor/server ./server
+COPY --from=BACK /go/src/casdoor/swagger ./swagger
+COPY --from=BACK /go/src/casdoor/conf/app.conf ./conf/app.conf
+COPY --from=FRONT /web/build ./web/build
+VOLUME /app/files /app/logs
+ENTRYPOINT ["/app/server"]
+
+
+FROM debian:latest AS db
+RUN apt update \
+ && apt install -y \
+ mariadb-server \
+ mariadb-client \
+ && rm -rf /var/lib/apt/lists/*
+
+
+FROM db AS ALLINONE
LABEL MAINTAINER="https://casdoor.org/"
-COPY --from=BACK /go/src/casdoor/ ./
-COPY --from=BACK /usr/bin/wait-for-it ./
-RUN mkdir -p web/build && apk add --no-cache bash coreutils
-COPY --from=FRONT /web/build /web/build
-CMD ./server
+ENV MYSQL_ROOT_PASSWORD=123456
+
+WORKDIR /app
+COPY --from=BACK /go/src/casdoor/server ./server
+COPY --from=BACK /go/src/casdoor/swagger ./swagger
+COPY --from=BACK /go/src/casdoor/docker-entrypoint.sh /docker-entrypoint.sh
+COPY --from=BACK /go/src/casdoor/conf/app.conf ./conf/app.conf
+COPY --from=FRONT /web/build ./web/build
+
+ENTRYPOINT ["/bin/bash"]
+CMD ["/docker-entrypoint.sh"]
diff --git a/docker-compose.yml b/docker-compose.yml
index 69ebf2d63fb4..458cd7296b9a 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -5,6 +5,7 @@ services:
build:
context: ./
dockerfile: Dockerfile
+ target: STANDARD
entrypoint: /bin/sh -c './server --createDatabase=true'
ports:
- "8000:8000"
diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh
new file mode 100644
index 000000000000..f38bc1d2b875
--- /dev/null
+++ b/docker-entrypoint.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+service mariadb start
+
+mysqladmin -u root password ${MYSQL_ROOT_PASSWORD}
+
+exec /app/server --createDatabase=true
diff --git a/object/init.go b/object/init.go
index 843993398466..14c3365c3716 100644
--- a/object/init.go
+++ b/object/init.go
@@ -104,7 +104,7 @@ func initBuiltInUser() {
IsGlobalAdmin: true,
IsForbidden: false,
IsDeleted: false,
- SignupApplication: "built-in-app",
+ SignupApplication: "app-built-in",
CreatedIp: "127.0.0.1",
Properties: make(map[string]string),
}
diff --git a/web/src/PermissionListPage.js b/web/src/PermissionListPage.js
index 98192509e6e9..9c1ca42434b8 100644
--- a/web/src/PermissionListPage.js
+++ b/web/src/PermissionListPage.js
@@ -93,7 +93,7 @@ class PermissionListPage extends BaseListPage {
...this.getColumnSearchProps('name'),
render: (text, record, index) => {
return (
-
+
{text}
)