Compare commits
8 Commits
64f72863a0
...
c5098b013e
Author | SHA1 | Date |
---|---|---|
Rob Greene | c5098b013e | |
Rob Greene | 049e4a362d | |
Rob Greene | b4841d7d4d | |
Rob Greene | b77510683f | |
Rob Greene | e2fea4eae3 | |
Rob Greene | f7028f5561 | |
A2 Geek | 8cc4dab709 | |
Byron Lathi | d879c70108 |
|
@ -0,0 +1,73 @@
|
||||||
|
# Working notes for pushing images to Docker Hub
|
||||||
|
|
||||||
|
> Note: It appears that the personal accounts on Docker Hub no longer automatically build based on a Github repository being tagged. (Maybe they never did as it's been 4 years!)
|
||||||
|
|
||||||
|
## Login
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker login
|
||||||
|
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
|
||||||
|
Username: a2geek
|
||||||
|
Password:
|
||||||
|
WARNING! Your password will be stored unencrypted in /home/rob/.docker/config.json.
|
||||||
|
Configure a credential helper to remove this warning. See
|
||||||
|
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
|
||||||
|
|
||||||
|
Login Succeeded
|
||||||
|
```
|
||||||
|
|
||||||
|
## Built and Tag
|
||||||
|
|
||||||
|
This created the `latest` tag:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker build -t a2geek/cc65-pipeline .
|
||||||
|
Sending build context to Docker daemon 135.2kB
|
||||||
|
Step 1/5 : FROM alpine:latest
|
||||||
|
---> e7d92cdc71fe
|
||||||
|
Step 2/5 : LABEL description="This is a cc65 Docker container intended to be used for build pipelines."
|
||||||
|
<snip>
|
||||||
|
---> 207cf150f1f0
|
||||||
|
Step 3/5 : ENV BUILD_DIR="/tmp" CC65_VERSION="V2.19" NULIB2_VERSION="v3.1.0" AC_VERSION="1.7.0" BASTOOLS_VERSION="0.3.1" ASU_VERSION="1.2.1"
|
||||||
|
<snip>
|
||||||
|
---> 06228100af88
|
||||||
|
Step 4/5 : COPY bin /usr/local/bin
|
||||||
|
<snip>
|
||||||
|
---> 0e009844ebc9
|
||||||
|
Step 5/5 : RUN a bunch of stuff
|
||||||
|
<snip>
|
||||||
|
---> 78d59c93b46b
|
||||||
|
Successfully built 78d59c93b46b
|
||||||
|
Successfully tagged a2geek/cc65-pipeline:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
... and this tagged it with the date:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker tag 78d59c93b46b a2geek/cc65-pipeline:2022-03-06
|
||||||
|
```
|
||||||
|
|
||||||
|
Check:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker images
|
||||||
|
REPOSITORY TAG IMAGE ID CREATED SIZE
|
||||||
|
a2geek/cc65-pipeline 2022-03-06 78d59c93b46b 31 minutes ago 238MB
|
||||||
|
a2geek/cc65-pipeline latest 78d59c93b46b 31 minutes ago 238MB
|
||||||
|
<none> <none> 8c7e891250c4 38 minutes ago 238MB
|
||||||
|
```
|
||||||
|
|
||||||
|
## Push to Docker Hub:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ docker push a2geek/cc65-pipeline
|
||||||
|
The push refers to repository [docker.io/a2geek/cc65-pipeline]
|
||||||
|
d2d7d7253122: Pushed
|
||||||
|
e3169423110d: Pushed
|
||||||
|
5216338b40a7: Mounted from a2geek/concourse-image
|
||||||
|
2022-03-06: digest: sha256:48ab14d15ca474c1e28913e133a5edf2f30853a14936b27936772562cbb665f0 size: 947
|
||||||
|
d2d7d7253122: Layer already exists
|
||||||
|
e3169423110d: Layer already exists
|
||||||
|
5216338b40a7: Layer already exists
|
||||||
|
latest: digest: sha256:48ab14d15ca474c1e28913e133a5edf2f30853a14936b27936772562cbb665f0 size: 947
|
||||||
|
```
|
27
Dockerfile
27
Dockerfile
|
@ -3,14 +3,15 @@ FROM alpine:latest
|
||||||
LABEL description="This is a cc65 Docker container intended to be used for build pipelines."
|
LABEL description="This is a cc65 Docker container intended to be used for build pipelines."
|
||||||
|
|
||||||
ENV BUILD_DIR="/tmp" \
|
ENV BUILD_DIR="/tmp" \
|
||||||
CC65_VERSION="V2.17" \
|
CC65_VERSION="V2.19" \
|
||||||
NULIB2_VERSION="v3.1.0" \
|
NULIB2_VERSION="v3.1.0" \
|
||||||
AC_RELEASE="v1-4-0" \
|
AC_VERSION="1.7.0" \
|
||||||
AC_VERSION="1.4.0"
|
BASTOOLS_VERSION="0.3.1" \
|
||||||
|
ASU_VERSION="1.2.1"
|
||||||
|
|
||||||
COPY bin /usr/local/bin
|
COPY bin /usr/local/bin
|
||||||
|
|
||||||
RUN apk add --no-cache build-base && \
|
RUN apk add --no-cache build-base binutils && \
|
||||||
echo "Building CC65 ${CC65_VERSION}" && \
|
echo "Building CC65 ${CC65_VERSION}" && \
|
||||||
cd ${BUILD_DIR} && \
|
cd ${BUILD_DIR} && \
|
||||||
wget https://github.com/cc65/cc65/archive/${CC65_VERSION}.tar.gz && \
|
wget https://github.com/cc65/cc65/archive/${CC65_VERSION}.tar.gz && \
|
||||||
|
@ -31,14 +32,26 @@ RUN apk add --no-cache build-base && \
|
||||||
./configure && \
|
./configure && \
|
||||||
make && \
|
make && \
|
||||||
make install && \
|
make install && \
|
||||||
echo "Adding AppleCommander" && \
|
|
||||||
wget https://github.com/AppleCommander/AppleCommander/releases/download/${AC_RELEASE}/AppleCommander-ac-${AC_VERSION}.jar && \
|
|
||||||
mkdir -p /usr/local/share/java && \
|
mkdir -p /usr/local/share/java && \
|
||||||
|
echo "Adding AppleCommander 'ac'" && \
|
||||||
|
wget https://github.com/AppleCommander/AppleCommander/releases/download/${AC_VERSION}/AppleCommander-ac-${AC_VERSION}.jar && \
|
||||||
mv AppleCommander-ac-${AC_VERSION}.jar /usr/local/share/java/AppleCommander-ac.jar && \
|
mv AppleCommander-ac-${AC_VERSION}.jar /usr/local/share/java/AppleCommander-ac.jar && \
|
||||||
|
echo "Adding AppleCommander 'acx'" && \
|
||||||
|
wget https://github.com/AppleCommander/AppleCommander/releases/download/${AC_VERSION}/AppleCommander-acx-${AC_VERSION}.jar && \
|
||||||
|
mv AppleCommander-acx-${AC_VERSION}.jar /usr/local/share/java/AppleCommander-acx.jar && \
|
||||||
|
echo "Adding bastools 'bt'" && \
|
||||||
|
wget https://github.com/AppleCommander/bastools/releases/download/v${BASTOOLS_VERSION}/bastools-tools-bt-${BASTOOLS_VERSION}.jar && \
|
||||||
|
mv bastools-tools-bt-${BASTOOLS_VERSION}.jar /usr/local/share/java/bastools-bt.jar && \
|
||||||
|
echo "Adding bastools 'st'" && \
|
||||||
|
wget https://github.com/AppleCommander/bastools/releases/download/v${BASTOOLS_VERSION}/bastools-tools-st-${BASTOOLS_VERSION}.jar && \
|
||||||
|
mv bastools-tools-st-${BASTOOLS_VERSION}.jar /usr/local/share/java/bastools-st.jar && \
|
||||||
|
echo "Adding applesingle 'asu'" && \
|
||||||
|
wget https://github.com/AppleCommander/applesingle/releases/download/v${ASU_VERSION}/applesingle-tools-asu-${ASU_VERSION}.jar && \
|
||||||
|
mv applesingle-tools-asu-${ASU_VERSION}.jar /usr/local/share/java/applesingle-asu.jar && \
|
||||||
echo "Cleaning up" && \
|
echo "Cleaning up" && \
|
||||||
cd ${BUILD_DIR} && \
|
cd ${BUILD_DIR} && \
|
||||||
rm -rf * && \
|
rm -rf * && \
|
||||||
apk del --no-cache build-base && \
|
apk del --no-cache build-base && \
|
||||||
echo "Adding other required build-tools exclusive of other C compilers!" && \
|
echo "Adding other required build-tools exclusive of other C compilers!" && \
|
||||||
apk add --no-cache make openjdk8-jre && \
|
apk add --no-cache make openjdk11-jre && \
|
||||||
chmod +x /usr/local/bin/*
|
chmod +x /usr/local/bin/*
|
||||||
|
|
18
README.md
18
README.md
|
@ -1,12 +1,8 @@
|
||||||
# cc65 build agent
|
# cc65 build agent
|
||||||
|
|
||||||
This Docker image is intended to be used in a build pipeline to build
|
This Docker image is intended to be used in a build pipeline to build
|
||||||
6502/65c02/65816 projects. It is simply a blend of
|
6502/65c02/65816 projects. It is based on
|
||||||
[Alpine Linux](https://alpinelinux.org/) and
|
[Alpine Linux](https://alpinelinux.org/).
|
||||||
[cc65](http://cc65.github.io/cc65/).
|
|
||||||
|
|
||||||
In an effort to keep the image small, it currently only contains (beyond the base
|
|
||||||
Alpine Linux Docker image) `make` and `cc65`.
|
|
||||||
|
|
||||||
Note that most tools are installed into `/usr/local` in some capacity and
|
Note that most tools are installed into `/usr/local` in some capacity and
|
||||||
configured to be executed from there. You can always run `docker run -it a2geek/cc65-pipeline /bin/sh`
|
configured to be executed from there. You can always run `docker run -it a2geek/cc65-pipeline /bin/sh`
|
||||||
|
@ -22,8 +18,16 @@ to submit a pull request!
|
||||||
## Apple II
|
## Apple II
|
||||||
|
|
||||||
* [NuLib2](http://nulib.com/) to support creation of ShrinkIt archives.
|
* [NuLib2](http://nulib.com/) to support creation of ShrinkIt archives.
|
||||||
|
* [cc65](http://cc65.github.io/cc65/) for C and assembly projects.
|
||||||
* [AppleCommander](https://applecommander.github.io/) to support creation of disk
|
* [AppleCommander](https://applecommander.github.io/) to support creation of disk
|
||||||
images.
|
images. The following utilities are included:
|
||||||
|
* [ac](https://applecommander.github.io/ac/) to manipulate disk images.
|
||||||
|
* [acx](https://applecommander.github.io/acx/) to manipulate disk images (alternate to 'ac').
|
||||||
|
* [bt](https://github.com/AppleCommander/bastools/blob/master/tools/bt/README.md) to transform an AppleSoft program from text back to its tokenized state.
|
||||||
|
* [st](https://github.com/AppleCommander/bastools/blob/master/tools/st/README.md) is a utility to manage AppleSoft shape tables.
|
||||||
|
* [asu](https://github.com/AppleCommander/applesingle/blob/master/tools/asu/README.md) to support manipulation of AppleSingle files.
|
||||||
|
* From the Alpine packages:
|
||||||
|
* [binutils](https://www.gnu.org/software/binutils/)
|
||||||
|
|
||||||
# Samples
|
# Samples
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/sh
|
||||||
|
java -jar /usr/local/share/java/AppleCommander-acx.jar "${@}"
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/sh
|
||||||
|
java -jar /usr/local/share/java/applesingle-asu.jar "${@}"
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/sh
|
||||||
|
java -jar /usr/local/share/java/bastools-bt.jar "${@}"
|
Loading…
Reference in New Issue