mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-29 05:05:39 +00:00
Simplify CI to mdpress only
This commit is contained in:
155
.github/workflows/ci.yaml
vendored
155
.github/workflows/ci.yaml
vendored
@@ -5,9 +5,8 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
defaults:
|
permissions:
|
||||||
run:
|
contents: read
|
||||||
shell: bash --noprofile --norc -exo pipefail {0}
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
@@ -15,142 +14,18 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v6
|
- uses: actions/checkout@v6
|
||||||
- uses: actions/setup-node@v6
|
- name: Install Chromium
|
||||||
with:
|
|
||||||
node-version: 20
|
|
||||||
- name: Install docs dependencies
|
|
||||||
run: npm install
|
|
||||||
- name: Build mdPress site
|
|
||||||
run: npm run build
|
|
||||||
- name: Build mdPress Docker Image
|
|
||||||
if: github.repository == 'docker-practice/docker_practice'
|
|
||||||
run: |
|
run: |
|
||||||
sudo chmod -R 777 _site
|
sudo apt-get update
|
||||||
echo "FROM nginx:alpine" >> Dockerfile
|
sudo apt-get install -y chromium-browser
|
||||||
echo "COPY _site /usr/share/nginx/html" >> Dockerfile
|
- name: Install mdpress (latest)
|
||||||
echo "COPY .docker/docker-entrypoint.sh /" >> Dockerfile
|
|
||||||
echo "ENTRYPOINT [\"/docker-entrypoint.sh\"]" >> Dockerfile
|
|
||||||
|
|
||||||
export VCS_REF=`git rev-parse --short HEAD`
|
|
||||||
|
|
||||||
docker build \
|
|
||||||
-t dockerpracticesig/docker_practice \
|
|
||||||
-t dockerpracticesig/docker_practice:mdpress \
|
|
||||||
--label org.opencontainers.image.revision=$VCS_REF \
|
|
||||||
--label org.opencontainers.image.source="https://github.com/yeasy/docker_practice" \
|
|
||||||
--label maintainer="https://github.com/docker-practice" \
|
|
||||||
.
|
|
||||||
|
|
||||||
docker run -d --rm -p 4000:80 dockerpracticesig/docker_practice
|
|
||||||
|
|
||||||
sleep 5
|
|
||||||
|
|
||||||
echo "::group::Test"
|
|
||||||
curl 127.0.0.1:4000
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
|
|
||||||
docker push dockerpracticesig/docker_practice
|
|
||||||
docker push dockerpracticesig/docker_practice:mdpress
|
|
||||||
env:
|
|
||||||
DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}}
|
|
||||||
DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}}
|
|
||||||
- name: Upload mdPress dist
|
|
||||||
uses: docker://pcit/pages
|
|
||||||
if: github.repository == 'docker-practice/docker_practice'
|
|
||||||
env:
|
|
||||||
PCIT_EMAIL: khs1994@khs1994.com
|
|
||||||
PCIT_GIT_TOKEN: ${{ secrets.PCIT_GIT_TOKEN }}
|
|
||||||
PCIT_GIT_URL: github.com/docker-practice/zh-cn
|
|
||||||
PCIT_KEEP_HISTORY: "true"
|
|
||||||
PCIT_LOCAL_DIR: _site
|
|
||||||
PCIT_MESSAGE: Build from yeasy/docker_practice@${{github.sha}}
|
|
||||||
PCIT_TARGET_BRANCH: master
|
|
||||||
PCIT_USERNAME: khs1994
|
|
||||||
- name: vuepress
|
|
||||||
run: |
|
run: |
|
||||||
export NODE_OPTIONS=--openssl-legacy-provider
|
LATEST_TAG=$(curl -fsSL https://api.github.com/repos/yeasy/mdpress/releases/latest | jq -r .tag_name)
|
||||||
sudo rm -rf _site
|
VERSION="${LATEST_TAG#v}"
|
||||||
|
echo "Installing mdpress $VERSION"
|
||||||
git clone https://github.com/docker-practice/.vuepress .vuepress2
|
curl -fsSL "https://github.com/yeasy/mdPress/releases/download/$LATEST_TAG/mdpress_${VERSION}_linux_amd64.tar.gz" -o mdpress.tar.gz
|
||||||
cp -r .vuepress2/. .vuepress/
|
tar xzf mdpress.tar.gz
|
||||||
rm -rf .vuepress2
|
sudo mv mdpress /usr/local/bin/
|
||||||
find . \( -path "./mesos" -o -path "./swarm_mode" -o -path "./node_modules" -o -path "./.vuepress" -o -path "./_site" -o -path "./CHANGELOG.md" -o -path "./CONTRIBUTING.md" \) -prune -o -name "*.md" -exec sed -i 'N;2a\<AdSenseTitle/>\n' {} \;
|
mdpress --version
|
||||||
|
- name: Build site
|
||||||
npx vuepress --version
|
run: mdpress build --format site
|
||||||
|
|
||||||
npm run vuepress:build
|
|
||||||
echo "vuepress.mirror.docker-practice.com" > .vuepress/dist/CNAME
|
|
||||||
|
|
||||||
cp -r _images .vuepress/dist
|
|
||||||
mkdir -p .vuepress/dist/appendix
|
|
||||||
cp -r appendix/_images .vuepress/dist/appendix
|
|
||||||
mkdir -p .vuepress/dist/cloud
|
|
||||||
cp -r 16_cloud/_images .vuepress/dist/cloud
|
|
||||||
mkdir -p .vuepress/dist/data_management
|
|
||||||
cp -r 08_data/_images .vuepress/dist/data_management
|
|
||||||
mkdir -p .vuepress/dist/etcd
|
|
||||||
cp -r 15_etcd/_images .vuepress/dist/etcd
|
|
||||||
mkdir -p .vuepress/dist/kubernetes
|
|
||||||
cp -r 13_kubernetes_concepts/_images .vuepress/dist/kubernetes
|
|
||||||
|
|
||||||
echo "include: [_images]" > .vuepress/dist/_config.yml
|
|
||||||
- name: Upload Vuepress dist
|
|
||||||
uses: docker://pcit/pages
|
|
||||||
if: github.repository == 'docker-practice/docker_practice'
|
|
||||||
env:
|
|
||||||
PCIT_EMAIL: khs1994@khs1994.com
|
|
||||||
PCIT_GIT_TOKEN: ${{ secrets.PCIT_GIT_TOKEN }}
|
|
||||||
PCIT_GIT_URL: github.com/docker-practice/vuepress
|
|
||||||
PCIT_KEEP_HISTORY: "true"
|
|
||||||
PCIT_LOCAL_DIR: .vuepress/dist
|
|
||||||
PCIT_MESSAGE: Build from yeasy/docker_practice@${{github.sha}}
|
|
||||||
PCIT_TARGET_BRANCH: master
|
|
||||||
PCIT_USERNAME: khs1994
|
|
||||||
# - name: Set coding.net CNAME
|
|
||||||
# run: |
|
|
||||||
# echo "vuepress.mirror.docker-practice.com" > .vuepress/dist/CNAME
|
|
||||||
# - name: Upload Vuepress dist to coding.net
|
|
||||||
# uses: docker://pcit/pages
|
|
||||||
# if: github.repository == 'docker-practice/docker_practice'
|
|
||||||
# env:
|
|
||||||
# PCIT_EMAIL: khs1994@khs1994.com
|
|
||||||
# PCIT_GIT_TOKEN: ${{ secrets.CODING_GIT_TOKEN }}
|
|
||||||
# PCIT_GIT_URL: e.coding.net/dpsigs/docker_practice
|
|
||||||
# PCIT_KEEP_HISTORY: "true"
|
|
||||||
# PCIT_LOCAL_DIR: .vuepress/dist
|
|
||||||
# PCIT_MESSAGE: Build from yeasy/docker_practice@${{github.sha}}
|
|
||||||
# PCIT_TARGET_BRANCH: master
|
|
||||||
# PCIT_USERNAME: ptt0xjqzbke3
|
|
||||||
- name: Build vuepress docker image
|
|
||||||
if: github.repository == 'docker-practice/docker_practice'
|
|
||||||
run: |
|
|
||||||
sudo rm -rf .vuepress/dist/.git
|
|
||||||
|
|
||||||
echo "FROM nginx:alpine" > Dockerfile
|
|
||||||
echo "COPY .vuepress/dist /usr/share/nginx/html" >> Dockerfile
|
|
||||||
echo "COPY .docker/docker-entrypoint.sh /" >> Dockerfile
|
|
||||||
echo "ENTRYPOINT [\"/docker-entrypoint.sh\"]" >> Dockerfile
|
|
||||||
|
|
||||||
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
|
|
||||||
|
|
||||||
VCS_REF=`git rev-parse --short HEAD`
|
|
||||||
|
|
||||||
docker build -t dockerpracticesig/docker_practice:vuepress \
|
|
||||||
--label org.opencontainers.image.revision=$VCS_REF \
|
|
||||||
--label org.opencontainers.image.source="https://github.com/yeasy/docker_practice" \
|
|
||||||
--label maintainer="https://github.com/docker-practice" \
|
|
||||||
.
|
|
||||||
|
|
||||||
docker push dockerpracticesig/docker_practice:vuepress
|
|
||||||
|
|
||||||
docker run -it --rm -d -p 4001:80 dockerpracticesig/docker_practice:vuepress
|
|
||||||
|
|
||||||
sleep 5
|
|
||||||
|
|
||||||
echo "::group::Test"
|
|
||||||
curl 127.0.0.1:4001
|
|
||||||
echo "::endgroup::"
|
|
||||||
env:
|
|
||||||
DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}}
|
|
||||||
DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}}
|
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ RUN set -x ; cd /app \
|
|||||||
第三阶段对以上阶段生成的文件进行整合。
|
第三阶段对以上阶段生成的文件进行整合。
|
||||||
|
|
||||||
```docker
|
```docker
|
||||||
FROM php:7.4-fpm-alpine as laravel
|
FROM php:8.3-fpm-alpine as laravel
|
||||||
|
|
||||||
ARG LARAVEL_PATH=/app/laravel
|
ARG LARAVEL_PATH=/app/laravel
|
||||||
|
|
||||||
@@ -204,7 +204,7 @@ RUN set -x ; cd /app \
|
|||||||
--no-scripts \
|
--no-scripts \
|
||||||
--prefer-dist
|
--prefer-dist
|
||||||
|
|
||||||
FROM php:7.4-fpm-alpine as laravel
|
FROM php:8.3-fpm-alpine as laravel
|
||||||
|
|
||||||
ARG LARAVEL_PATH=/app/laravel
|
ARG LARAVEL_PATH=/app/laravel
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ FROM node:alpine as frontend
|
|||||||
COPY package.json /app/
|
COPY package.json /app/
|
||||||
|
|
||||||
RUN set -x ; cd /app \
|
RUN set -x ; cd /app \
|
||||||
&& npm install --registry=https://registry.npm.taobao.org
|
&& npm install --registry=https://registry.npmmirror.com
|
||||||
|
|
||||||
COPY webpack.mix.js webpack.config.js tailwind.config.js /app/
|
COPY webpack.mix.js webpack.config.js tailwind.config.js /app/
|
||||||
COPY resources/ /app/resources/
|
COPY resources/ /app/resources/
|
||||||
@@ -27,7 +27,7 @@ RUN set -x ; cd /app \
|
|||||||
--no-scripts \
|
--no-scripts \
|
||||||
--prefer-dist
|
--prefer-dist
|
||||||
|
|
||||||
FROM php:7.4-fpm-alpine as laravel
|
FROM php:8.3-fpm-alpine as laravel
|
||||||
|
|
||||||
ARG LARAVEL_PATH=/app/laravel
|
ARG LARAVEL_PATH=/app/laravel
|
||||||
|
|
||||||
|
|||||||
@@ -91,7 +91,6 @@ docker network create --driver overlay \
|
|||||||
my-custom-overlay
|
my-custom-overlay
|
||||||
|
|
||||||
# 在 Compose 中使用 overlay 网络
|
# 在 Compose 中使用 overlay 网络
|
||||||
version: '3.9'
|
|
||||||
services:
|
services:
|
||||||
web:
|
web:
|
||||||
image: nginx
|
image: nginx
|
||||||
@@ -284,8 +283,6 @@ docker exec <container_id> cat /etc/resolv.conf
|
|||||||
**Docker Compose DNS 配置:**
|
**Docker Compose DNS 配置:**
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
version: '3.9'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
web:
|
web:
|
||||||
image: nginx
|
image: nginx
|
||||||
@@ -343,8 +340,6 @@ docker run -it --network mynet busybox sh
|
|||||||
**Compose 服务名自动发现:**
|
**Compose 服务名自动发现:**
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
version: '3.9'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
frontend:
|
frontend:
|
||||||
image: nginx
|
image: nginx
|
||||||
|
|||||||
@@ -353,8 +353,6 @@ exit $?
|
|||||||
**Docker Compose 配置:**
|
**Docker Compose 配置:**
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
version: '3.9'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgres:
|
postgres:
|
||||||
build:
|
build:
|
||||||
@@ -409,8 +407,6 @@ networks:
|
|||||||
**性能优化配置:**
|
**性能优化配置:**
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
version: '3.9'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:16-alpine
|
image: postgres:16-alpine
|
||||||
@@ -556,8 +552,6 @@ client-output-buffer-limit pubsub 32mb 8mb 60
|
|||||||
**三层微服务架构示例:**
|
**三层微服务架构示例:**
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
version: '3.9'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
# 前端服务
|
# 前端服务
|
||||||
frontend:
|
frontend:
|
||||||
@@ -828,8 +822,6 @@ WORKDIR /workspace
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# .devcontainer/docker-compose.yml
|
# .devcontainer/docker-compose.yml
|
||||||
version: '3.9'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
app:
|
app:
|
||||||
build:
|
build:
|
||||||
|
|||||||
Reference in New Issue
Block a user