Skip to content

Commit 60ada0e

Browse files
committed
Script: modify Dockerfile
1 parent 61c3603 commit 60ada0e

File tree

3 files changed

+36
-32
lines changed

3 files changed

+36
-32
lines changed

.github/workflows/docker.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ jobs:
1717
strategy:
1818
matrix:
1919
PACKAGE: [deb, rpm]
20+
- PACKAGE: deb
21+
image: ubuntu
22+
- PACKAGE: rpm
23+
image: fedora
2024

2125
# See: [About GitHub-hosted runners](https://docs.github.com/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners)
2226
# See: [Choosing the runner for a job](https://docs.github.com/actions/writing-workflows/choosing-where-your-workflow-runs/choosing-the-runner-for-a-job)
@@ -38,7 +42,7 @@ jobs:
3842
submodules: true
3943
- name: run docker
4044
run: |
41-
./Script/build_linux.sh --docker --${{matrix.PACKAGE}}
45+
./Script/build_linux.sh --docker --docker-image=${{matrix.image}} --${{matrix.PACKAGE}}
4246
- name: Update artifact
4347
if: ${{matrix.PACKAGE == 'rpm'}}
4448
uses: actions/upload-artifact@v4

Script/build_linux.sh

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,22 @@ DOCKER=0
77
DEB=0
88
RPM=0
99
APPIMAGE=0
10-
if [ -z "$OS" ]; then
11-
OS=ubuntu
10+
if [ -z "$DOCKERT_IMAGE" ]; then
11+
DOCKERT_IMAGE=ubuntu
1212
fi
1313
if [ -z "$BUILD_VERBOSE" ]; then
1414
BUILD_VERBOSE=OFF
1515
fi
1616

1717
usage_long() {
18-
echo "$0 [-h|--help] [-v|--verbose[=0|1]] [--docker] [--deb] [--rpm] [--appimage] [--os=Operate system] --install=<install directory>] [--source=<source directory>] [--tools=<tools directory>]"
18+
echo "$0 [-h|--help] [-v|--verbose[=0|1]] [--docker] [--deb] [--rpm] [--appimage] [--docker-image=docker image] --install=<install directory>] [--source=<source directory>] [--tools=<tools directory>]"
1919
echo " --help|-h: Show help"
2020
echo " -v|--verbose: Show build verbose"
2121
echo " --docker: run docket for build"
2222
echo " --deb: build deb package"
2323
echo " --rpm: build rpm package"
2424
echo " --appimage: build AppImage"
25-
echo " --os: Operate system name"
25+
echo " --docker-image: The name of docker image"
2626
echo "Directory:"
2727
echo " --install: Set install directory"
2828
echo " --source: Set source directory"
@@ -39,7 +39,7 @@ if command -V getopt >/dev/null; then
3939
# 后面没有冒号表示没有参数。后跟有一个冒号表示有参数。跟两个冒号表示有可选参数。
4040
# -l 或 --long 选项后面是可接受的长选项,用逗号分开,冒号的意义同短选项。
4141
# -n 选项后接选项解析错误时提示的脚本名字
42-
OPTS=help,verbose::,docker::,deb::,rpm::,appimage::,os::,install:,source:,tools:
42+
OPTS=help,verbose::,docker::,deb::,rpm::,appimage::,docker-image::,install:,source:,tools:
4343
ARGS=`getopt -o h,v:: -l $OPTS -n $(basename $0) -- "$@"`
4444
if [ $? != 0 ]; then
4545
echo "exec getopt fail: $?"
@@ -112,12 +112,12 @@ if command -V getopt >/dev/null; then
112112
esac
113113
shift 2
114114
;;
115-
--os)
115+
--docker-image)
116116
case $2 in
117117
"")
118-
OS=1;;
118+
DOCKERT_IMAGE=1;;
119119
*)
120-
OS=$2;;
120+
DOCKERT_IMAGE=$2;;
121121
esac
122122
shift 2
123123
;;
@@ -162,7 +162,20 @@ mkdir -p $TOOLS_DIR
162162
mkdir -p $INSTALL_DIR
163163

164164
if [ $DOCKER -eq 1 ]; then
165-
docker build -t RabbitRemoteControl/${OS} $CURDIR/docker
165+
# Create Dockerfile
166+
cat <<EOF > ${BUILD_LINUX_DIR}/Dockerfile
167+
FROM $DOCKERT_IMAGE
168+
169+
RUN useradd -s /bin/bash -m kl
170+
RUN echo >> /etc/sudoers
171+
RUN echo "kl ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
172+
173+
USER kl
174+
WORKDIR /home/kl
175+
CMD ["/bin/bash"]
176+
EOF
177+
178+
docker build -t RabbitRemoteControl/${DOCKERT_IMAGE} -f ${BUILD_LINUX_DIR}/Dockerfile
166179

167180
## Copy the source code to build directory
168181
pushd ${REPO_ROOT}
@@ -177,23 +190,23 @@ if [ $DOCKER -eq 1 ]; then
177190
popd
178191

179192
if [ $DEB -eq 1 ]; then
180-
docker run --volume ${BUILD_LINUX_DIR}:/home/deb/build --interactive --rm RabbitRemoteControl/${OS} \
193+
docker run --volume ${BUILD_LINUX_DIR}:/home/build --interactive --rm RabbitRemoteControl/${DOCKERT_IMAGE} \
181194
bash -e -x -c "
182-
tar -C ~ -xf /home/deb/build/RabbitRemoteControl.tar.gz
183-
sudo ~/RabbitRemoteControl/Script/build_linux.sh --os=${OS} --deb --verbose ${BUILD_VERBOSE}
184-
cp ~/rabbitremotecontrol*.deb /home/deb/build/
195+
tar -C ~ -xf /home/build/RabbitRemoteControl.tar.gz
196+
sudo ~/RabbitRemoteControl/Script/build_linux.sh --deb --verbose ${BUILD_VERBOSE}
197+
cp ~/rabbitremotecontrol*.deb /home/build/
185198
"
186199
fi
187200
if [ $APPIMAGE -eq 1 ]; then
188-
docker run --volume ${BUILD_LINUX_DIR}:/home/deb/build --privileged --interactive --rm RabbitRemoteControl/${OS} \
201+
docker run --volume ${BUILD_LINUX_DIR}:/home/build --privileged --interactive --rm RabbitRemoteControl/${DOCKERT_IMAGE} \
189202
bash -e -x -c "
190-
tar -C ~ -xf /home/deb/build/RabbitRemoteControl.tar.gz
191-
sudo ~/RabbitRemoteControl/Script/build_linux.sh --os=${OS} --appimage --verbose ${BUILD_VERBOSE}
192-
cp ~/RabbitRemoteControl/RabbitRemoteControl_`uname -m`.AppImage /home/deb/build/
203+
tar -C ~ -xf /home/build/RabbitRemoteControl.tar.gz
204+
sudo ~/RabbitRemoteControl/Script/build_linux.sh --appimage --verbose ${BUILD_VERBOSE}
205+
cp ~/RabbitRemoteControl/RabbitRemoteControl_`uname -m`.AppImage /home/build/
193206
"
194207
fi
195208
if [ $RPM -eq 1 ]; then
196-
docker run --volume ${BUILD_LINUX_DIR}:/home/build --privileged --interactive --rm fedora \
209+
docker run --volume ${BUILD_LINUX_DIR}:/home/build --privileged --interactive --rm RabbitRemoteControl/${DOCKERT_IMAGE} \
197210
bash -e -x -c "
198211
mkdir -p ~/rpmbuild/SOURCES/
199212
cp /home/build/RabbitRemoteControl.tar.gz ~/rpmbuild/SOURCES/

Script/docker/Dockerfile

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)